Skip to content

docs(crews): say why a preview goes stale and why ACP seats lack auto modes - #307

Merged
bryantderosier merged 6 commits into
j5/mainfrom
j5/crews-preview-binding
Sep 29, 2026
Merged

bryantderosier merged 6 commits into
j5/mainfrom
j5/crews-preview-binding

Conversation

@bryantderosier

@bryantderosier bryantderosier commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Two correct behaviors at the roster gate surprised a person the first time (#231). The approval preview token binds the Captain's project, branch, worktree, and interaction mode (crewRuntimePreview.ts), so switching the Captain's branch between preview and approval failed with "preview has changed" and nothing said why. And seats on an ACP registry harness can't use Auto-accept edits or Auto, because the harness can't enforce them, but the seat editor hid those options without explanation.

What I changed

  • docs/j5/product/features/crews.md AC3: one sentence that the preview binds the Captain's project, branch, worktree, and interaction mode, plus a History line.
  • docs/user/personas.md, Crews section: one sentence each for the branch binding and the missing access modes on ACP harnesses.
  • apps/server/src/j5/a2a/CrewProposalService.ts: the stale-preview refusal names the roster, a seat's runtime, and the Captain's branch or worktree as what may have changed. Message text only.

Why this shape

The binding is correct: approval must launch exactly what was shown. So the fix is saying why, in the card message the person already sees and in the docs, not changing the behavior.

Invariants

  • No behavior change; the refusal still fires on the same token mismatch.

Surfaces

Surface Decision
Entry points (chat, Settings, command palette, keybinding) Unaffected.
Clients (web, desktop, mobile) The card shows the server's message, so web and desktop get the clearer text with no client change.
Providers Unaffected.
Contracts (packages/contracts) Unchanged.
Reverse states n/a.
Connection modes (local, remote, tunnel) Unaffected.
Upstream files / FORK.md None.
Docs crews.md AC3 and History, docs/user/personas.md.

Out of scope

None. #344 has merged, so the seat editor, the server's ACP seat error, and this PR's user-guide sentence all use upstream's names (Supervised, Auto-accept edits).

Upgrade and data

None.

Verification

  • CrewProposalService.test.ts: 15 passed. No test pins the message text, and I didn't add one that would only mirror the string.
  • Server typecheck clean.

Review focus

  • Whether the refusal should also name the interaction mode. I kept it to the causes a person can actually change from the card.

Closes #231

Claude Opus 5.5 via Claude Code

🤖 Generated with Claude Code

… modes

Two correct behaviors at the roster gate surprised a person the first time.
The approval preview binds the Captain's branch and worktree, so a branch
switch between preview and approval failed with "preview has changed" and
nothing said why. And the seat editor hides Accept edits and Auto on ACP
registry harnesses, which cannot enforce them, with no explanation.

crews.md AC3 and the Crews section of the personas guide now say both, and
the stale-preview refusal names the roster, a seat's runtime, and the
Captain's branch or worktree as what may have changed. Message text only;
no behavior change.

Closes #231

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Repository: Jacksondr5/j5code/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 7bfb6000-be09-43c4-af56-d07a5cea15de


Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 effective changed lines (test files excluded in mixed PRs). labels Sep 25, 2026
Conflict in crews.md History: kept this branch's AC3 entry beside the sync's handoff artifact entry.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Jacksondr5

Copy link
Copy Markdown
Owner

[Review panel: Opus 5.5 + coordinator (Opus 5.5)]

Rebase needed. The CrewProposalService.ts hunk conflicts with #313, which rewrites resolve. On #313's branch the stale-preview refusal still carries the old text, so re-apply the new message after rebasing.

Docs: the new crews.md History line has no attribution, while every other line names who decided and links a record; suggest "(Bryant; #231)". It also sits after the out-of-order 2026-09-16 line. Once #306 restores date order, it belongs with the other 2026-09-24 lines.

@Jacksondr5

Copy link
Copy Markdown
Owner

Decision (Jackson, 2026-09-26): use upstream's access-mode names everywhere. Upstream's composer labels the modes Supervised, Auto-accept edits, Auto and Full access. J5's copies say "Approval required" and "Accept edits". Please fold the rename into this PR, since it's the same topic:

  • apps/web/src/j5/crew/crewSeatRuntime.ts CREW_ACCESS_OPTIONS: use upstream's labels and descriptions verbatim ("Ask before commands and file changes.", "Auto-approve edits, ask before other actions.", …). Keep the J5 copy rather than exporting upstream's module-private list: an upstream edit isn't worth it.
  • The server strings that name the mode: crewRuntimePreview.ts ("Approval required") and both ACP messages in CrewLaunchService.ts ("Choose Approval required or Full access" → "Choose Supervised or Full access").
  • The docs: docs/user/personas.md and crews.md should use Supervised and Auto-accept edits, so the "Out of scope" note in this PR's description goes away.

bryantderosier and others added 2 commits September 28, 2026 09:03
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@bryantderosier

Copy link
Copy Markdown
Collaborator Author

@Jacksondr5 An update on #307:

I merged the latest j5/main.

@Jacksondr5

Copy link
Copy Markdown
Owner

[Review panel: Opus 5.5 + coordinator (Opus 5.5)]

Round two, at 8077983:

@bryantderosier

Copy link
Copy Markdown
Collaborator Author

@Jacksondr5 Agreed on all three. Nothing changes here until #344 and #313 merge. After #344, I'll change the docs/user/personas.md sentence to "offers only Supervised and Full access, because those harnesses can't enforce Auto-accept edits or Auto", and I'll drop the Out-of-scope note. #313 is merging now, so I'll resolve the CrewProposalService.ts conflict here and re-apply the new stale-preview message. #307 won't merge before either of those.

bryantderosier and others added 2 commits September 28, 2026 13:42
Conflict: #313 rewrote CrewProposalService.resolve; kept main's version and re-applied this branch's stale-preview refusal text naming the roster, a seat's runtime, and the Captain's branch or worktree.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Conflicts: AC3 keeps #347's approval flag and adds this branch's preview-binding sentence; the personas guide keeps #301's and #347's text and adds the preview and ACP sentences, now in #344's access-mode names (Supervised, Auto-accept edits); both 2026-09-24 History lines stay.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@bryantderosier
bryantderosier merged commit e22a61a into j5/main Sep 29, 2026
34 of 36 checks passed
@bryantderosier
bryantderosier deleted the j5/crews-preview-binding branch September 29, 2026 14:58
bryantderosier added a commit that referenced this pull request Sep 29, 2026
Conflicts: agent-tools.md takes main's quoted propose_crew and request_crew_member descriptions and tables, which match the shipped strings after #347; crews.md takes main's Definition (Full access default, seats ask their Captain) with this branch's no-approver roster wording, and History keeps one date-ordered list with #301's and #307's 2026-09-24 lines.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 effective changed lines (test files excluded in mixed PRs). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document the approval token's branch binding and the ACP access restriction

2 participants