From b68b45104b69a94eab7e81d9d650a18051e17536 Mon Sep 17 00:00:00 2001 From: Andreas Trawoeger Date: Sun, 1 Nov 2026 23:12:06 +0100 Subject: [PATCH 1/3] fix(params): restore the projection to the canonical cue@v0.16.1 output 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) --- candy/plugin-openclaw/params/cue_types_gen.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/candy/plugin-openclaw/params/cue_types_gen.go b/candy/plugin-openclaw/params/cue_types_gen.go index 9b9b0da..4ced6a0 100644 --- a/candy/plugin-openclaw/params/cue_types_gen.go +++ b/candy/plugin-openclaw/params/cue_types_gen.go @@ -24,17 +24,17 @@ type OpenclawInput struct { // the resolved gateway endpoint; CLI methods (status/models/channels/version) run // inside the venue where the `openclaw` binary is installed. All are read-only — // there are no mutating methods in this first cut. - Method string `yaml:"method,omitempty" json:"method"` + Method string `json:"method"` // port — the gateway port to probe. Default 18789 (the openclaw candy's published // port, relayed from the loopback-bound gateway by socat). - Port int64 `yaml:"port,omitempty" json:"port,omitempty"` + Port int64 `json:"port,omitempty"` // timeout — the HTTP probe timeout. Default 10s. - Timeout string `yaml:"timeout,omitempty" json:"timeout,omitempty"` + Timeout string `json:"timeout,omitempty"` // json_path — a dotted path into the JSON response; when set, the verb's stdout is // the value at that path rather than the whole document, so a `stdout:` matcher can // assert one field without pattern-matching a blob. - JSONPath string `yaml:"json_path,omitempty" json:"json_path,omitempty"` + JSONPath string `json:"json_path,omitempty"` } From 3a8e4bc952a22ae24a8943c09db5e5aafc0fb504 Mon Sep 17 00:00:00 2001 From: Andreas Trawoeger Date: Sun, 1 Nov 2026 23:17:14 +0100 Subject: [PATCH 2/3] chore(pr): re-freeze so the validator reads the corrected body 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) From 7ba4c266fcea6d5750eb033d017d7f62522f6b76 Mon Sep 17 00:00:00 2001 From: Andreas Trawoeger Date: Sun, 1 Nov 2026 23:21:49 +0100 Subject: [PATCH 3/3] chore(pr): re-freeze for the executed-decode evidence round 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)