Repository navigation
fix(params): restore the projection to the canonical cue@v0.16.1 output - #15
Conversation
The previous change regenerated this file with `charly candy params`, which is NOT the instrument this repo is graded on. The org's reusable candy-validate gate and this repo family's CI run plain `cue exp gengotypes` at cue@v0.16.1; the charly wrapper applies a yaml retag and reflows doc comments, so its output differs from the canonical one on the SAME schema. Measured with the canonical instrument against main after that change: cue@v0.16.1 gengotypes vs the committed file -> 4 diff lines (FAIL) Restoring the file to exactly what cue@v0.16.1 emits, so the committed projection matches the gate that grades it. Nothing else changes. Assisted-by: DeepSeek Harness deepseek-v4.1-flash (analysed on a live system)
Review — BLOCKHead SHA: Change class: generated artifact (a single generated params projection, +2/−2). Blocks
The direction of the change (removing charly-added Verdict: BLOCK ollama-cloud/deepseek-v4.1-flash — action-review. |
Body-only round: the decode-path proof (JSON never YAML), the filed issue, and the untrimmed module gate are now in the PR body. A REST re-run replays the original event payload and re-reads the stale body, so a new head is the way to make the gate read what GitHub serves. Empty by design. Assisted-by: DeepSeek Harness deepseek-v4.1-flash (documentation reviewed)
Review — PASSHead SHA: Security screen: PASS Comment disposition: @github-actions[bot] BLOCK (6564648268) — Verdict: PASS ollama-cloud/deepseek-v4.1-flash — action-review. |
Summary
The previous change on this file regenerated it with
charly candy params. That is not theinstrument this repo is graded on: the org's reusable
candy-validategate and this repofamily's CI run plain
cue exp gengotypesatcue@v0.16.1, and the charly wrapper applies a yamlretag and reflows doc comments, so the two produce different files from the same schema.
Measured with the canonical instrument against
mainafter that change landed:The org already recorded this class in
opencharly/.github's reusable: "An earlier revision ofthis step called the charly candy params verb, and that was WRONG … eight PRs derived from a
census taken with the wrong instrument had to be withdrawn." This is one of those eight, corrected
in place.
The fix restores the file to exactly what
cue@v0.16.1emits.The removed tags are PROVEN inert (no runtime effect)
Removing
yaml:"…"tags would be a runtime-observable change if anything YAML-decoded thesestructs. Nothing does. A plugin never receives YAML: charly hands it JSON, and every plugin decodes
that JSON into its params struct.
kit.DecodeInputgoes through JSON as well, so the json tags are the only ones on the path:And no YAML decoder touches a params struct anywhere in the org — the sdk's four
yaml.Unmarshalsites decode the install ledger, system info and generic YAML documents, not plugin params:
So the tag removal changes no decoded key on any path that exists: the same YAML config produces
the same CUE value, and the same JSON reaches the plugin.
Files changed
candy/plugin-feature/params/cue_types_gen.gocue@v0.16.1projection restoredHow tested
The canonical gate on this head — PASS:
The module's full gate on this head, untrimmed:
Rulebook compliance
/charly-internals:git-workflowgoverns this branch/PR; thepluginskill covers agenerated candy projection.
RCA: the census used
charly candy params --check, an instrument that disagrees with thecanonical one; the missed control was assuming one generator for both.
params:
cue exp gengotypesandcharly candy paramsdisagree on the yaml tags, so a plugin repo cannot satisfy its own CI charly#1098, with the eight-repo measurement table.origin/main; no force-push, no direct push tomain.which is the runtime boundary this file participates in; the artifact is verified by the
generator that owns it.
Change classification
Change class: generated artifact (a params projection) whose tag set is proven inert at the
runtime boundary.
Breaking change + rollback: none — the file returns to the shape
maincarried before theprevious change, and the tags it removes are never read (proof above). Rollback is a plain revert.
Filed issues
cue exp gengotypesandcharly candy paramsdisagree on the yaml tags, so a plugin repo cannot satisfy its own CI charly#1098 —charly candy paramsand the org's canonicalcue exp gengotypesgateemit different files from the same schema, so no repo can satisfy both. Carries the eight-repo
measurement table that produced this correction.
Assisted-by: DeepSeek Harness deepseek-v4.1-flash (fully tested and validated)