chore: seed Layer 2 parity-manifest.json#13
Merged
Conversation
Mirrors cueapi-python #24 + cueapi-cli #25 shape per the 3-layer parity discipline (PR template + this manifest + Backlog rows). Tracks which CueAPI HTTP endpoints have wrapper coverage as MCP tools, plus `tool_param_drift` for tools where the input/response schema doesn't fully cover the underlying API surface. 15 endpoints currently covered (cue lifecycle + execution lifecycle including the Phase 18 worker-pull endpoints shipped in PR #11). Notable open gaps: - PR #589 payload field on GET /v1/executions/{id} — blocks cueapi_get_execution from surfacing the new field. - PR #590 require_payload_override + required_payload_keys — blocks cueapi_create_cue / cueapi_update_cue from accepting the new validation knobs. - Messaging primitive (Phase 12.1.5) — not yet exposed as MCP tools; significant new surface to add before push delivery v1.5 goes wide. Both PR #589 and #590 ports are tracked as `priority=now` Backlog rows in agent-team-project-tracker (rows cmoreumyg + cmoqlx1l0). Audit cadence: monthly full sweep; per-PR delta via PR template's Parity Impact section (Layer 1 of the discipline). Routed via CTO-PARITY-L2-MCP-ROUTE token.
…audit
Audited the manifest against the actual cueapi-core router list at
2026-05-04 09:55 ET. Three corrections + several additions:
**Corrections to endpoints_covered:**
1. `pause_cue` and `resume_cue` are PATCH /v1/cues/{id} variants
(with status field), NOT separate POST endpoints. The MCP tool
implementation in src/tools.ts confirms — both wrap the same URL
as `update_cue`. Removed the spurious `POST /v1/cues/{id}/pause`
and `POST /v1/cues/{id}/resume` lines; consolidated all three
tools under PATCH /v1/cues/{id}.
2. `claim_next_execution` does NOT use a dedicated `/claim-next`
endpoint — that route doesn't exist. The MCP tool implementation
does a two-step (GET /claimable + POST /{id}/claim). The actual
dedicated server route is POST /v1/executions/claim (no `-next`
suffix). Listed under endpoints_missing as a real coverage gap +
added `open_implementation_drift` entry calling out the race
window between the two-step's discover and claim.
**Additions to endpoints_missing (caught by router audit):**
- PATCH /v1/executions/{id}/evidence (update execution evidence)
- POST /v1/executions/claim (atomic claim-next; see drift note)
- GET /v1/webhook-secret + POST regenerate (user-account secret)
- GET /v1/auth/key + PATCH /v1/auth/me (account profile surface)
- GET /v1/alert-webhook-secret + POST regenerate
- Phase 18 agent-shells API (POST/GET/DELETE /v1/agents/{ref}/shells
+ per-shell heartbeat) — distinct from per-execution heartbeat
- Messaging primitive expanded with concrete route list (POST
/v1/messages/{id}/read + /ack + GET /v1/agents/{ref}/sent that
weren't in the prior catch-all)
**New top-level field: `open_implementation_drift`** — tracks tools
whose impl differs from the conceptually-cleanest server route
(currently just claim_next). PRs that fix drift land here as a
sealed entry.
Net delta: 14 covered (was 15 — pause+resume merged with update;
claim_next removed because /claim-next route doesn't exist) + 19
missing (was 14) + 1 drift entry. Manifest is now actually
auditable against the real cueapi-core surface.
JSON validates.
Collaborator
Author
|
Self-audit fixup pushed (7803d71). Caught 3 corrections + 5 missing endpoints by walking cueapi-core's actual router list:
Net delta: 14 covered + 19 missing + 1 drift. Manifest is now actually auditable against the real cueapi-core surface. |
govindkavaturi-art
approved these changes
May 4, 2026
Member
govindkavaturi-art
left a comment
There was a problem hiding this comment.
Excellent — the manifest is the right artifact for the open-core boundary. Three details that make this high-quality:
endpoints_missingincludes a per-endpointblockerrationale (not just "missing") so reviewers can tell intentional gap from driftopen_implementation_driftflags thecueapi_claim_next_executionrace window (claim-via-/claimable+/claim two-step instead of the dedicated /claim route) — that's exactly the kind of subtle drift this manifest is meant to catch- Per-version
package_version_at_auditpins the audit to a specific snapshot
Approve.
3 tasks
govindkavaturi-art
pushed a commit
that referenced
this pull request
May 6, 2026
Closes 2 entries from `endpoints_missing` / `tool_param_drift` in cueapi-mcp #13's parity-manifest.json. ## PR #589 — effective payload on GET responses `cueapi_get_execution` and `cueapi_list_executions` are passthrough handlers, so the new `payload` field surfaces automatically without handler changes. Updated descriptions to call out the field so MCP hosts know it's there (effective payload = payload_override if set on the fire, else the parent cue's payload at delivery time — useful for audit, forensics, and "reply via fresh API call" flows from agents not running inside the bundled-worker handler context). ## PR #590 — server-side payload_override enforcement Added two new optional fields to `cueapi_create_cue` + `cueapi_update_cue` schemas and handler passthroughs: - `require_payload_override` (bool) — when true, fires without `payload_override` are rejected with HTTP 400 `payload_override_required`. - `required_payload_keys` (string[]) — keys that must be present in the resolved post-merge payload. Missing keys yield HTTP 400 `missing_required_payload_keys` with a `missing_keys` list. Updated `cueapi_fire_cue` description to surface the 3 new error codes (the third being `inconsistent_message_instruction`, which fires when both `message` and `instruction` are required and the server enforces byte-equality so different recipient handlers route on the same content). ## Tests 7 new (38 → 45 in `tests/tools.test.ts`, 86 total across all 5 test files): - cueapi_create_cue: smoke test (didn't exist before — first PR to add HTTP-contract tests for the create handler), passes PR #590 fields through to body, false/empty edge cases, omits fields not explicitly passed (server-default contract) - cueapi_update_cue: 4 new tests covering the two new field passthroughs + their false/empty edge cases (sparse-update semantics — explicit false must round-trip, not be conflated with unset) `npm test` — 86/86 pass. `npm run build` — clean. ## Parity manifest - `tool_param_drift.cueapi_get_execution.covered_response_fields` now lists `payload`. Removed from missing. - `tool_param_drift."cueapi_create_cue / cueapi_update_cue".covered_request_fields` now lists the two new PR #590 fields. Removed from missing. - `ported_pr_history` updated: PR #589 + #590 now PORTED. ## Companion ports - cueapi-cli #26 (PR #589 + #590 port) — already merged 2026-05-04. - cueapi-action #2 — pending. - cueapi-python #23 — pending. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Layer 2 of the 3-layer parity discipline (PR template + this manifest + Backlog rows). Mirrors cueapi-python #24 and cueapi-cli #25 shape.
Seeded by CC-cue-mac-app per
CTO-PARITY-L2-MCP-ROUTE.What it tracks
cueapi_get_execution,cueapi_create_cue/cueapi_update_cue,cueapi_fire_cue) with field-level drift notes against the underlying API schema.Notable open gaps (cross-referenced to Backlog)
payloadfield onGET /v1/executions/{id}) — blockscueapi_get_executionfrom surfacing the new field. Backlog row cmoreumyg.require_payload_override+required_payload_keys) — blockscueapi_create_cue/cueapi_update_cuefrom accepting the new validation knobs. Backlog row cmoqlx1l0.Audit cadence
Monthly full sweep + per-PR diffs via the
Parity Impactsection in the cueapi-core PR template (Layer 1, cueapi/cueapi#615).Test plan
python3 -m json.tool parity-manifest.jsonpasses).🤖 Generated with Claude Code (CC-cue-mac-app)