Dashboard Cockpit layout, RESEARCH/REVIEW tool-access fix, Quick Create mode picker#17
Merged
Merged
Conversation
Replaces the single stacked column with a wide primary column (Focus,
Pick-up, a new Pipeline bars card) beside an always-visible rail (the
existing customizable widget stack, forced to one column) — chosen
after mocking up 3 layout directions to fix reported scroll/gap/flow
complaints. DashboardStack gains a columns={1|2} prop for the rail.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…promised runtimeModeToolCapabilities() returned zero host tools for any non-EXECUTE mode when the operator hadn't set an explicit modeToolProfiles override — contradicting engagement-modes.md's own "Research: read, search, run read-only tools" contract. Now defaults RESEARCH/REVIEW to the read-oriented subset (filesystem, git — never terminal) of whatever the runtime actually declared; EXECUTE and any explicit override are unchanged, DISCUSS still gets nothing. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The new-issue overlay could assign an agent via /assign @handle but had no way to set the dispatch's engagement mode — the server hardcoded explicit: null, always falling back to the workspace default. SlashCommand's assign variant gains an optional mode?: EngagementMode (UI-only, never parsed from typed text); a compact 4-button picker next to the assign badge reuses the same EngagementModeGlyph/MODE_ORDER as the issue-detail AgentPickerModal. No schema change — mode lives on AgentRun, not Issue. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…cker Co-Authored-By: Claude Sonnet 5 <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
Three independent pieces from one session:
two-column cockpit — a wide primary work column (Focus today, Pick up where
you left off, a new Pipeline bars card, Suggestions) beside an
always-visible rail (the existing customizable widget stack, now forced to
one column). Chosen after mocking up 3 layout directions (Cockpit / Bento /
Priority-bands) to address reported "too much scrolling / empty gaps /
doesn't flow" complaints.
DashboardStackgains acolumns?: 1 | 2prop(default 2, back-compat — it's only used on this one page).
runtimeModeToolCapabilities()wasreturning zero host tools for any non-EXECUTE mode with no explicit
modeToolProfilesoverride — contradictingdocs/agents/engagement-modes.md's own promise ("Research: read, search,run read-only tools"). Now defaults RESEARCH/REVIEW to the read-oriented
subset (
filesystem,git— neverterminal) of whatever the runtimedeclared. (Separately: web-search availability is not a Forge concept at
all by design — that's a Hermes-gateway-config question, out of scope here.)
/assign. The new-issue overlaycould assign an agent but had no way to set the run's engagement mode — the
server hardcoded
explicit: null. Added an optionalmodeto theassignslash command (UI-only) and a compact 4-button picker next to the assign
badge, reusing the same glyph/order as the issue-detail
AgentPickerModal.No schema change needed.
Verification
pnpm typecheck && pnpm lint && pnpm build— all clean.tests/unit/runtime-tools.test.ts(7 cases) + existingslash-commands.test.ts/chat-slash-command-gating.test.ts— 36/36 pass.dev:localwith realseeded data via scripted Playwright (login → dashboard render with 3-col
Focus grid + populated rail; quick-create
/assign victor→ mode pickerappears unselected → click Research →
aria-checkedflips correctly).node_modulesis missing theserver-onlypackage, failing 21tests/unit/*.test.tsfiles that don'ttouch any file in this diff (confirmed via
ls node_modules/server-onlyvs. the main checkout, and
pnpm installdidn't resolve it) — anenvironmental gap, not a regression from this change.
Test plan
Pipeline card, and rail render correctly with real data.
modeToolProfilesoverride — confirm it now gets filesystem/git tools.C), type/assign @<agent>, confirm the modepicker appears and persists the chosen mode onto the created issue's run.
🤖 Generated with Claude Code