Skip to content

fix(crews): use upstream's access-mode names - #344

Merged
bryantderosier merged 1 commit into
j5/mainfrom
j5/crews-access-mode-names
Sep 29, 2026
Merged

bryantderosier merged 1 commit into
j5/mainfrom
j5/crews-access-mode-names

Conversation

@bryantderosier

@bryantderosier bryantderosier commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Upstream's composer names the access modes Supervised, Auto-accept edits, Auto, and Full access. J5's Crew surfaces said "Approval required" and "Accept edits", so the same mode had two names depending on where you looked. Jackson asked for the rename on #307; I split it out here because #307 is a docs PR and this changes UI labels and server strings (one concern per PR).

What I changed

  • apps/web/src/j5/crew/crewSeatRuntime.ts → CREW_ACCESS_OPTIONS: labels and descriptions copied verbatim from upstream's runtimeModeConfig ("Supervised: Ask before commands and file changes.", "Auto-accept edits: Auto-approve edits, ask before other actions.").
  • apps/server/src/j5/a2a/crewRuntimePreview.ts: the access label in the runtime preview reads "Supervised" and "Auto-accept edits".
  • apps/server/src/j5/a2a/CrewLaunchService.ts: both ACP refusals say "Choose Supervised or Full access."
  • Tests updated to the new strings.

Screenshots

Both use the same seeded roster proposal on an isolated copy of real data, light theme, 1440×1000. The Captain runs in Supervised. code-reviewer sets no access, docs-writer asks for Supervised, and test-author asks for Auto-accept edits.

Seat editor access menu, before (j5/main):

Before: access menu with Approval required and Accept edits

After: upstream's labels and descriptions.

After: access menu with Supervised and Auto-accept edits

Runtime preview on the roster card, before:

Before: roster card rows read Approval required and Accept edits

After:

After: roster card rows read Supervised and Auto-accept edits

Why this shape

Jackson's call was to keep the J5 copy of the list rather than export upstream's module-private one, since an upstream edit isn't worth it for four labels. So the strings are duplicated, verbatim.

Invariants

  • The option values (approval-required, auto-accept-edits, auto, full-access) are unchanged; only display text moves.
  • The J5 labels and descriptions match apps/web/src/components/chat/runtimeModeConfig.ts exactly.

Surfaces

Surface Decision
Entry points (chat, Settings, command palette, keybinding) Changed: the Crew seat editor and the roster/Inbox runtime preview.
Clients (web, desktop, mobile) Web and desktop. Mobile has no Crew surface.
Providers Unaffected, except the ACP refusal text.
Contracts (packages/contracts) Unaffected; the preview's access is a display string.
Reverse states Not applicable.
Connection modes (local, remote, tunnel) Unaffected.
Upstream files / FORK.md No upstream file touched.
Docs Unaffected on j5/main; #307's docs take the new names once this lands.

Out of scope

Upgrade and data

None. An older server still sends the old preview strings until it's updated.

Verification

  • apps/server, apps/web, and packages/contracts typecheck (exit 0).
  • vp test run apps/server/src/j5 apps/web/src/j5: 1,036 passed.
  • Lint is clean on the J5 directories.

Review focus

  • That every place a Crew surface names a mode now uses upstream's words.

Claude Opus 5.5 via Claude Code in J5 Code

🤖 Generated with Claude Code

Upstream's composer names the modes Supervised, Auto-accept edits, Auto, and
Full access. The Crew seat editor, the runtime preview, and the ACP refusal
said "Approval required" and "Accept edits". They now use upstream's labels
and descriptions verbatim. The seat editor keeps its own J5 copy of the list
rather than exporting upstream's module-private config.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@bryantderosier bryantderosier added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. jackson-direct Taken by Jackson + Astra outside the fleet methodology; lanes never staff these labels Sep 28, 2026
@bryantderosier bryantderosier self-assigned this Sep 28, 2026
@coderabbitai

coderabbitai Bot commented Sep 28, 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: 88fd365f-24e0-441f-8464-f0817c616b17


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

@Jacksondr5

Copy link
Copy Markdown
Owner

Posted by an AI agent on Jackson's behalf.

Jackson accepts the rename as a separate PR (2026-09-28). One concern per PR is our own rule. Please merge this before #307, and then update #307's personas.md sentence to the new names. A review is coming.

@Jacksondr5

Copy link
Copy Markdown
Owner

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

Code verified; no bugs.

  • CREW_ACCESS_OPTIONS: all four labels and descriptions match upstream's runtimeModeConfig.ts exactly, and the option values are unchanged.
  • The runtime preview and both ACP refusals use Supervised and Auto-accept edits. "Read only" and "Repository write" (a persona seat with no override) are persona policy names, so they correctly stay.
  • No "Approval required", "Accept edits", or old description remains anywhere on the branch: code, tests, docs, or user docs.
  • Nothing keys off the label: access is a display-only string rendered by CrewProposalCard, and no notice or stored thread text carries it.

Needed before approval: before/after screenshots. This PR changes labels users see, and the repo requires before/after images for UI changes (AGENTS.md, "UI changes need before/after images"). Please add before/after crops of:

  • the seat editor's access menu
  • a runtime-preview row on the roster or Inbox card

Push them to j5/evidence under pr-344/ and put them in the description.

FYI, not a finding: crewApprovalToken hashes the resolved seats, the access string included. A preview shown by an older server and approved after the upgrade gets the existing "preview missing or changed; refresh" refusal, which is recoverable in one click.

bryantderosier added a commit that referenced this pull request Sep 29, 2026
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@bryantderosier

Copy link
Copy Markdown
Collaborator Author

@Jacksondr5 The before/after screenshots are in the description now, pushed to j5/evidence under pr-344/review-20260929/: the seat editor's access menu and the roster card's runtime-preview rows. Both use the same seeded proposal on an isolated copy of real data, j5/main for before and this branch's head for after. The menu reads Supervised, Auto-accept edits, Auto, Full access, with upstream's descriptions, and the rows read Supervised and Auto-accept edits.

@bryantderosier
bryantderosier merged commit 61e8045 into j5/main Sep 29, 2026
36 checks passed
@bryantderosier
bryantderosier deleted the j5/crews-access-mode-names branch September 29, 2026 14:29
bryantderosier added a commit that referenced this pull request Sep 29, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jackson-direct Taken by Jackson + Astra outside the fleet methodology; lanes never staff these size:S 10-29 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.

2 participants