Skip to content

fix(ci): correct jq paths in smoke workflow#17

Merged
chenliuyun merged 1 commit intomainfrom
fix/smoke-jq-paths
Apr 20, 2026
Merged

fix(ci): correct jq paths in smoke workflow#17
chenliuyun merged 1 commit intomainfrom
fix/smoke-jq-paths

Conversation

@chenliuyun
Copy link
Copy Markdown
Collaborator

Summary

The first real-device smoke run (#24649528610) revealed that the workflow's jq assertions target top-level keys, but src/utils/output.ts::printJson wraps every response as { schemaVersion, data: ... }. The IR step actually succeeded at the CLI + API level (response contained data.verification.verifiable: false), but jq evaluated .verification.verifiable against a document without that top-level key and exited 1, failing the step and skipping the downstream destructive steps.

Changes

Updated jq paths in .github/workflows/smoke.yml:

  • doctor --json | jq '.summary'jq '.data.summary'
  • IR: .verification.verifiable.data.verification.verifiable
  • Idempotency: .replayed.data.replayed, .error.data.error
  • History: jq '.'jq '.data', jq 'length'jq '.data | length'

No CLI behavior change; this is a workflow-assertion fix only.

Test plan

  • After merge, re-trigger Smoke (real device) with the same device IDs and confirm all four destructive steps run and pass

All CLI JSON output is wrapped as `{ schemaVersion, data: ... }` by
`printJson` in src/utils/output.ts, but the smoke workflow asserted
against top-level paths like `.verification.verifiable` and `.replayed`.
The first real-device run (24649528610) exposed this: the IR step
correctly received `data.verification.verifiable: false` from the CLI
but jq evaluated the wrong path and failed the step.

Updated all assertions to use `.data.*` paths, including:
- doctor .data.summary
- IR .data.verification.verifiable
- idempotency .data.replayed and .data.error
- history `.data | length`
@chenliuyun chenliuyun merged commit 3ac2900 into main Apr 20, 2026
3 checks passed
@chenliuyun chenliuyun deleted the fix/smoke-jq-paths branch April 20, 2026 05:13
chenliuyun pushed a commit that referenced this pull request Apr 20, 2026
C1 (#14): update --idempotency-key / --idempotency-key-prefix help text
  in devices.ts and batch.ts to mention process-local scope, per-process
  cache semantics, and that independent CLI invocations do not share cache.

C2 (#15): mcp --help "eight tools" → "eleven tools"; list all 11 by name
  including get_device_history, query_device_history, aggregate_device_history.

C3 (#17): add `scenes describe <sceneId>` subcommand. Returns sceneId,
  sceneName, stepCount:null, and a note explaining v1.1 API limitation.
  Exits 2 with scene_not_found + candidate list on unknown sceneId.
  Adds 'scenes describe' to COMMAND_META in capabilities.ts.
  Adds 2 tests (known + unknown scene).

C4 (#13): add JSDoc comment on hints field in agent-bootstrap.ts clarifying
  empty array semantics. Add 'hints' field to cliAddedFields in schema.ts.

C5 (#16): create docs/verbose-redaction.md documenting masked headers
  (authorization, token, sign, nonce, x-api-key, cookie, set-cookie,
  x-auth-token, t) and the --trace-unsafe opt-out flag.

C6 (#18): plan schema output now includes agentNotes.deviceNameStrategy
  documenting that deviceName uses require-unique resolution and plans
  should pin deviceId for determinism.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
chenliuyun pushed a commit that referenced this pull request Apr 20, 2026
Document every fix landed in this branch beyond the history-aggregate
feature: bugs #1, #4, #5, #6, #8, #9, #10, #11, #12, #13, #14, #15,
#16, #17, #18 from the OpenClaw v2.4.0 smoke-test report. Call out
the deferred items (#2, #7) explicitly so readers don't assume they
were overlooked.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
chenliuyun pushed a commit that referenced this pull request Apr 20, 2026
C1 (#14): update --idempotency-key / --idempotency-key-prefix help text
  in devices.ts and batch.ts to mention process-local scope, per-process
  cache semantics, and that independent CLI invocations do not share cache.

C2 (#15): mcp --help "eight tools" → "eleven tools"; list all 11 by name
  including get_device_history, query_device_history, aggregate_device_history.

C3 (#17): add `scenes describe <sceneId>` subcommand. Returns sceneId,
  sceneName, stepCount:null, and a note explaining v1.1 API limitation.
  Exits 2 with scene_not_found + candidate list on unknown sceneId.
  Adds 'scenes describe' to COMMAND_META in capabilities.ts.
  Adds 2 tests (known + unknown scene).

C4 (#13): add JSDoc comment on hints field in agent-bootstrap.ts clarifying
  empty array semantics. Add 'hints' field to cliAddedFields in schema.ts.

C5 (#16): create docs/verbose-redaction.md documenting masked headers
  (authorization, token, sign, nonce, x-api-key, cookie, set-cookie,
  x-auth-token, t) and the --trace-unsafe opt-out flag.

C6 (#18): plan schema output now includes agentNotes.deviceNameStrategy
  documenting that deviceName uses require-unique resolution and plans
  should pin deviceId for determinism.
chenliuyun pushed a commit that referenced this pull request Apr 20, 2026
Document every fix landed in this branch beyond the history-aggregate
feature: bugs #1, #4, #5, #6, #8, #9, #10, #11, #12, #13, #14, #15,
#16, #17, #18 from the OpenClaw v2.4.0 smoke-test report. Call out
the deferred items (#2, #7) explicitly so readers don't assume they
were overlooked.
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