Skip to content

fix(cli): explain older Harness schema as a version mismatch - #1079

Merged
berenddeboer merged 1 commit into
mainfrom
rfa/berenddeboer-ready-for-agent/1072/wi-01KZZMAWQCVKQZT53RS9NZ5E1Z
Aug 14, 2026
Merged

fix(cli): explain older Harness schema as a version mismatch#1079
berenddeboer merged 1 commit into
mainfrom
rfa/berenddeboer-ready-for-agent/1072/wi-01KZZMAWQCVKQZT53RS9NZ5E1Z

Conversation

@berenddeboer

Copy link
Copy Markdown
Owner

A newer CLI talking to a still-running older Harness failed candidates
and status with GRAPHQL_VALIDATION_FAILED and an internal field name
(intakeCandidates, kanbanStatus). Those commands exist in --help,
so the output read as a broken CLI rather than "restart the Harness."

Missing GraphQL fields this CLI requires are now remapped to
HARNESS_VERSION_MISMATCH. The message names this CLI version, the
Harness origin, the operator command, and how to upgrade
(ready-for-agent start). When the Harness can answer Query.version,
the message also names the server version; pre-version servers omit
that clause.

Also added Query.version on the Harness and ran the Bun/Nx TypeScript
shim from pre-commit so typescript-sync keeps readConfigFile.

Verified with CLI error-mapping tests, process contracts for old
candidates/status (with and without Query.version), GraphQL
version tests, and the Effect CLI suite. A review note about
duplicated process-test servers was left as-is to match the existing
contract style.

Closes #1072

A newer CLI talking to a still-running older Harness failed `candidates`
and `status` with `GRAPHQL_VALIDATION_FAILED` and an internal field name
(`intakeCandidates`, `kanbanStatus`). Those commands exist in `--help`,
so the output read as a broken CLI rather than "restart the Harness."

Missing GraphQL fields this CLI requires are now remapped to
`HARNESS_VERSION_MISMATCH`. The message names this CLI version, the
Harness origin, the operator command, and how to upgrade
(`ready-for-agent start`). When the Harness can answer `Query.version`,
the message also names the server version; pre-`version` servers omit
that clause.

Also added `Query.version` on the Harness and ran the Bun/Nx TypeScript
shim from pre-commit so `typescript-sync` keeps `readConfigFile`.

Verified with CLI error-mapping tests, process contracts for old
`candidates`/`status` (with and without `Query.version`), GraphQL
`version` tests, and the Effect CLI suite. A review note about
duplicated process-test servers was left as-is to match the existing
contract style.

Closes #1072
@berenddeboer
berenddeboer marked this pull request as ready for review August 14, 2026 08:32
@berenddeboer
berenddeboer merged commit a092c5d into main Aug 14, 2026
5 checks passed
@berenddeboer
berenddeboer deleted the rfa/berenddeboer-ready-for-agent/1072/wi-01KZZMAWQCVKQZT53RS9NZ5E1Z branch August 14, 2026 08:32
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.

A newer CLI against an older Harness fails with a raw GraphQL field error instead of a version mismatch

1 participant