Skip to content

re-negotiation isn't well supported #2

@johnfink8

Description

@johnfink8

Trying to renegotiate a doc with substantial changes, the originating claude is getting stuck:

The convention assembles the whole doc, so it validates against the currently-accepted (still-invalid) endpoints — bumping it now will keep
failing until the endpoint fixes land. Let me test whether endpoint/schema proposes are scoped more narrowly. Proposing the /converse fix alone
first:

● Bash(cd /tmp/brackish_reconcile/rev && brackish endpoint propose clyde-api GET /converse --file GET-converse.yaml --expected-version 1 2>&1;
echo "exit=$?")
⎿  brackish: spec_invalid: invalid OpenAPI 3.1 spec

 error  paths./events.get.responses: must NOT have unevaluated properties
 … +3 lines (ctrl+o to expand)

⎿  Shell cwd was reset to /home/john/clyde_server
⎿  Allowed by auto mode classifier

● Confirmed: every propose validates the full assembled spec, so the two invalid endpoints block each other. The question is whether
propose-batch stages items and validates atomically (which would fix both at once) or per-item (deadlock). Let me test with a convention-free
batch — schemas + both endpoint fixes together:

● Bash(cd /tmp/brackish_reconcile/rev
cat > manifest_noconv.yaml <<'EOF'…)
⎿  propose failed for schema ConverseSTTFinalEvent (): spec_invalid (invalid OpenAPI 3.1 spec)
remaining (not attempted): schema ConverseSTTFinalEvent, schema ConverseSalienceEvent, schema ConverseInterruptEvent, schema ConverseEn
dFrame, schema ConverseDoneEvent, schema ConverseErrorEvent, schema ConverseHeardEvent, schema ConverseSTTPartialEvent, schema EventsIn
… +2 lines (ctrl+o to expand)
⎿  Shell cwd was reset to /home/john/clyde_server
⎿  Allowed by auto mode classifier

● Per-item validation, stop-on-first — even schema proposes re-validate the whole doc, and the two mutually-invalid endpoints block everything.
Let me test whether an endpoints-only batch validates atomically (both fixes applied together) rather than per-item:

● Bash(cd /tmp/brackish_reconcile/rev
cat > manifest_eponly.yaml <<'EOF'…)
⎿  propose failed for endpoint GET /events (): spec_invalid (invalid OpenAPI 3.1 spec)
remaining (not attempted): endpoint GET /events, endpoint GET /converse
exit=1
… +13 lines (ctrl+o to expand)
⎿  Shell cwd was reset to /home/john/clyde_server
⎿  Allowed by auto mode classifier

● Hard deadlock via the normal path — no atomic batch, and each endpoint's fix is blocked by the other's pre-existing invalidity. Let me check
whether endpoint propose has a --force/no-validate escape, and scan the top-level verbs:

● Bash(echo "=== endpoint propose help ==="; brackish endpoint propose --help 2>&1 | sed -n '1,60p'
echo "=== top-level verbs ==="; brackish --help 2>&1 | sed -n '1,80…)
⎿  === endpoint propose help ===
Usage: brackish endpoint propose [options]
… +112 lines (ctrl+o to expand)

● --force is version-state only, not validation-skip; no repair verb. Before I conclude this is a hard tooling deadlock, two more probes — does
--force relax spec validation, and does brackish doc have a repair/transaction path:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions