Repository navigation
fix(params): restore the projection to the canonical cue@v0.16.1 output - #12
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 -> 8 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 Go artifact (params projection), single file, tag-only diff. Blocks
Non-blocking notes
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 — BLOCKHead SHA: Change class: generated Go artifact (params projection), single file, tag-only diff (+4/-4). Blocks
Comment disposition:
Verdict: BLOCK ollama-cloud/deepseek-v4.1-flash — action-review. |
Body now carries executed proof instead of static reading: the same JSON decode run against BOTH projections of the schema, with identical results, plus literal grep output. A REST re-run replays the original payload, so a new head is what makes the gate read the served body. Empty by design. Assisted-by: DeepSeek Harness deepseek-v4.1-flash (documentation reviewed)
Review — PASSHead SHA: Security screen: PASS
Verdict: PASS ollama-cloud/deepseek-v4.1-flash — action-review. |
Review — PASSHead SHA: Change class: generated Go artifact (params projection), one file, tag-only diff (+4/-4) — canonical Comment dispositions:
Verdict: PASS ollama-cloud/deepseek-v4.1-flash — action-review. |
Review — PASSHead SHA: Security screen: PASS — T1–T4 clean. Single generated Go params file, tag-only (+4/-4); no secrets/egress, no guardrail weakening, no security machinery, no embedded directives. Comment dispositions:
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 — by EXECUTION, on both versions
A scratch Go probe (never committed) drives the only runtime path these structs participate in:
build a params map keyed by the json tags, marshal it, decode it into the struct through
json.Unmarshal— the call every plugin's provider makes — and count how many fields land. It wasrun against BOTH projections of the SAME schema:
The two arms are identical. The yaml tags change nothing about what the decode populates,
because no decoder on this path reads them. Literal confirmation:
Those decode the install ledger and system info — never a params struct. The plugin's own decode is
JSON, through a helper that marshals to JSON first:
Files changed
candy/plugin-openclaw/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 (analysed on a live system)