Skip to content

docs: queue reading TOML input without YAML crates (CTC-025) - #138

Merged
any-victor merged 2 commits into
mainfrom
docs/ctc-025-input-toml-split
Oct 17, 2026
Merged

any-victor merged 2 commits into
mainfrom
docs/ctc-025-input-toml-split

Conversation

@any-victor

Copy link
Copy Markdown
Contributor

Adds CTC-025. A consumer that reads only TOML config, such as infer-machine, compiles serde-saphyr, yamled, and garde through input-toml, because Limits is defined over serde-saphyr Budget, the repository limits file is YAML, and check/load are garde. Splitting them changes public items by feature, so it is planned as its own change.

infer-machine reads only TOML config through input-toml, which today
also compiles serde-saphyr, yamled, and garde. The split redesigns
Limits and gates public items, so it is its own row.
@kodus-hostinger

kodus-hostinger Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Review

Incremental · 0 open

@kody review after new commits. @kody full re-reads the whole PR.

Summary

This patch only adds a queue entry to tasks.yaml. No source or build files change.

What the CTC-025 entry defines

  • Title: Read TOML input without the YAML and garde crates
  • Scope: src/input.rs, src/input/limits.rs, src/input/toml_text.rs, and the input and input-toml features in Cargo.toml.
  • Outcome: A consumer that reads only TOML config compiles no YAML parser and no garde.
  • blocked_by: empty. The task can start now.

Acceptance criteria

  1. Dependency check. With default features off and only input-toml enabled, cargo tree for ctl-core lists none of serde-saphyr, yamled, or garde.
  2. Feature gating of public items.
    • Input::check and Input::load exist only with the validate feature.
    • The YAML format, YAML limits, and REPO_FILE exist only with a YAML feature.
    • This change to the public API depends on which features are enabled, so it is planned separately.
  3. Downstream and semver.
    • qctl, verctl, and forkctl must build unchanged on the release that ships this.
    • cargo semver-checks must report the change at the version the changeset declares.
  4. TOML limits independent of YAML.
    • A TOML text gets its own byte, depth, and node limits, with defaults that ctl-core states.
    • The call and process limit tiers must apply without YAML.
    • The repository tier applies only when a YAML feature reads REPO_FILE (.ctl/input.yaml).

Notes recorded in the entry

  • Origin: Filed 2026-10-17 from infer-lab INF-074. That change moves infer-machine onto ctl-core App and input-toml. Until this task lands, infer-machine pulls in serde-saphyr, yamled, and garde.

  • Why this is not a small split:

    • Limits is defined as overrides of serde-saphyr Budget.
    • The TOML path reads max_depth and max_nodes from that Budget.
    • The repository limits file is parsed as YAML.
    • check and load are built on garde.

    Because of this, the TOML path needs its own limit representation before the crates can be separated.

Files

File Status + −
tasks.yaml modified +15 −0

Open

No open findings.

History

When Pass Open
17 Oct 13:36 UTC Incremental 0

Inspect this review

@any-victor
any-victor merged commit f2a9fb1 into main Oct 17, 2026
3 checks passed
@any-victor
any-victor deleted the docs/ctc-025-input-toml-split branch October 17, 2026 19:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant