Skip to content

chore(contract): bump OpenAPI spec pin to community v9.6.1#245

Open
saurabhjain1592 wants to merge 3 commits into
mainfrom
chore/spec-pin-v961
Open

chore(contract): bump OpenAPI spec pin to community v9.6.1#245
saurabhjain1592 wants to merge 3 commits into
mainfrom
chore/spec-pin-v961

Conversation

@saurabhjain1592

Copy link
Copy Markdown
Member

What

Dedicated spec-pin bump for the wire-shape contract baseline. openapi_specs_sha moves from 8c8d6c9c506aa25fcd8a887f6fc71f71b5d6bc30 (v7.4.3-era) to ac1b7cd879cd4143b1205fa697b9686e2f8f6024 (community v9.6.1, current origin/main of getaxonflow/axonflow). Baseline regenerated via the documented procedure: node scripts/wire-shape/refresh.js <specs_dir> against a detached checkout of the community repo at the target SHA.

Baseline + pin only — no SDK source changes. Carries the spec-pin-bump label per the wire-shape workflow's SHA-bump guard.

Baseline delta

Section Before After
per_type_drift entries 33 19
registered_types 82 88
cross_spec_duplicates 8 9
intra_file_duplicates 1 (PolicyMatch x2) 0

Dropped (v9.6.1 spec caught up — superset acknowledgments burn down)

  • MCPCheckInputResponse redacted/redacted_statement/redaction_evaluated — declared in v9.6.1.
  • AuditSearchRequest decision_id/offset/override_id/policy_name — declared (v9.6.1 audit-search work).
  • AuditLogEntry metadata/model/policy_violations (residual: data_residency, transfer_basis).
  • Whole-entry drops: Budget, CancelPlanResponse, CreateStaticPolicyRequest, CreateWorkflowResponse, DynamicPolicy, ExecutionSnapshot, ExecutionSummary, MarkStepCompletedRequest, PlanResponse, UpdateStaticPolicyRequest, UsageBreakdown, UsageRecord, UsageSummary, WorkflowStepInfo.
  • orchestrator-api.yaml intra-file PolicyMatch duplicate — fixed upstream.

Kept, with acknowledgment notes

  • MCPCheckOutputResponse.redaction_evaluated — platform emits it since enterprise #2865/#2866 (2026-07-09); the spec declaration rides the v9.7.0 community sync. Flip (drop the entry) on the next pin bump.
  • DecideResponse.error — platform sets it on the malformed-request deny path; not yet spec-declared.

New at this pin

  • registered_types +6: DecideRequest, DecideResponse, DecisionCallerIdentity, DecisionTarget, ObligationFulfillment (Decision Mode surface).
  • ConformityAssessment cross-spec divergence (agent-api vs orchestrator-api shapes differ) — spec-side, baselined per gate procedure.
  • HealthResponse (agent-api) gained plugin_compatibility in its cross-spec fingerprint.

Real drift found (tracked in-baseline, NOT fixed here)

  • ResumePlanResponse: v9.6.1 declares next_step/next_step_name/step_result on the wire, but the SDK's resumePlan transformer does not populate them — its camelCase nextStep/nextStepName/stepResult slots are documented-deprecated, never-populated fields. Needs a dedicated SDK fix PR to map the spec-declared fields (out of scope for a pin-only PR).

Validation

  • AXONFLOW_OPENAPI_SPECS_DIR=<v9.6.1 checkout>/docs/api node scripts/wire-shape/validate.js — PASS (88 pairs validated).
  • node scripts/transformer-coverage/check.js --baseline .lint_baselines/transformer_coverage.json — PASS (2 findings, all baselined).
  • npm ci && npm test — 32/32 suites, 967 passed, 13 skipped (env-gated), 0 failed.

Refs getaxonflow/axonflow-enterprise#2861

Refresh tests/fixtures/wire-shape-baseline.json from the community
mirror at ac1b7cd879cd4143b1205fa697b9686e2f8f6024 (v9.6.1); previous
pin was 8c8d6c9c506aa25fcd8a887f6fc71f71b5d6bc30 (v7.4.3-era).

Dropped (spec caught up, entries burn down automatically):
- MCPCheckInputResponse redacted/redacted_statement/redaction_evaluated
  (declared in v9.6.1)
- AuditSearchRequest decision_id/offset/override_id/policy_name
- AuditLogEntry metadata/model/policy_violations
- Budget, CancelPlanResponse, CreateStaticPolicyRequest,
  CreateWorkflowResponse, DynamicPolicy, ExecutionSnapshot,
  ExecutionSummary, MarkStepCompletedRequest, PlanResponse,
  UpdateStaticPolicyRequest, UsageBreakdown, UsageRecord,
  UsageSummary, WorkflowStepInfo superset entries
- intra-file PolicyMatch duplicate in orchestrator-api.yaml (fixed
  upstream)

Kept with notes:
- MCPCheckOutputResponse.redaction_evaluated: platform emits it since
  enterprise #2865/#2866; spec declaration rides the v9.7.0 community
  sync — flip on next pin bump.
- DecideResponse.error: platform sets it on the malformed-request deny
  path; not yet spec-declared.

New (from the v9.6.1 spec surface):
- registered_types +6 (DecideRequest/DecideResponse/
  DecisionCallerIdentity/DecisionTarget/ObligationFulfillment, 82->88)
- ConformityAssessment cross-spec divergence (agent vs orchestrator)
- ResumePlanResponse real drift: spec declares next_step/
  next_step_name/step_result which the resumePlan transformer does not
  populate — tracked in-baseline for a dedicated SDK fix PR.

Baseline + pin only; no SDK source changes.

Refs getaxonflow/axonflow-enterprise#2861

Signed-off-by: Saurabh Jain <saurabh.jain@getaxonflow.com>
@saurabhjain1592 saurabhjain1592 added the spec-pin-bump Authorizes a change to openapi_specs_sha in the wire-shape baseline label Jul 9, 2026
saurabhjain1592 and others added 2 commits July 10, 2026 02:13
* fix(planning): resumePlan surfaces step-mode HITL fields

The orchestrator's confirm/step-mode resume path emits step_result,
next_step, next_step_name, total_steps and workflow_id (plus message on
terminal paths), and the v9.6.1 community OpenAPI spec declares all of
them on ResumePlanResponse. The TypeScript resumePlan transformer
dropped every one of them, and the ResumePlanResponse type doc wrongly
marked the camelCase slots as deprecated/never-populated.

- src/client.ts: map workflow_id, step_result, next_step,
  next_step_name and total_steps onto the result (existing mappings
  preserved).
- src/types/planning.ts: un-deprecate workflowId, message, stepResult,
  nextStep, nextStepName and totalSteps with accurate wire-path docs
  (step-mode HITL vs terminal resume). message is a real wire field
  (terminal-path outcome summary), not a workflowId alias.
- tests: new resumePlan unit tests covering the step-gating payload,
  the terminal completed path, the rejected path, and the error path.
- wire-shape baseline regenerated against the same pin (community
  ac1b7cd8, unchanged): the ResumePlanResponse drift entry and its
  note drop; acknowledged _note keys on DecideResponse and
  MCPCheckOutputResponse re-added (refresh.js strips them).
- CHANGELOG: Fixed bullet under the un-cut 8.5.1 section; version
  unchanged.

Refs getaxonflow/axonflow-enterprise#2861

Signed-off-by: Saurabh Jain <dev@getaxonflow.com>

* test(runtime-e2e): resumePlan confirm-mode loop against a live agent

Adds runtime-e2e/resume_plan_step_fields/: generatePlan(executionMode:
'confirm') → executePlan (WCP gates step 0) → resumePlan per gated step
→ terminal resume, against a real Enterprise agent. Asserts every
non-terminal resume carries workflow_id/step_result/next_step/
next_step_name/total_steps and the terminal resume carries
workflow_id + message with no step-gating fields.

Verified green against the live local Enterprise stack (RESULT: PASS,
12/12 checks).

Refs getaxonflow/axonflow-enterprise#2861

Signed-off-by: Saurabh Jain <dev@getaxonflow.com>

---------

Signed-off-by: Saurabh Jain <dev@getaxonflow.com>
Co-authored-by: Saurabh Jain <dev@getaxonflow.com>
…es it)

Signed-off-by: Saurabh Jain <saurabh.jain@getaxonflow.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

spec-pin-bump Authorizes a change to openapi_specs_sha in the wire-shape baseline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant