Repository navigation
Description
Finding
Since PR #60 (merged as 1585d2b), the root session's docks show pending permission requests and questions from subagents at any depth, including ones raised before the app loaded. Neither dock says which session asked.
- The permission dock's header is "Permission required".
- The question dock's header is "Question", or "Question n of m".
That is the same whether the request came from the viewed session or from a grandchild. With several subagents running, the user can't tell which one wants to run the command or is asking.
Evidence (main 5214f4d)
packages/app/src/session/requests/model.ts:26-36loads permissions and forms for every session in the viewed tree (sessionTreeIDs(data.session.list(), id)).packages/app/src/session/requests/session-permission-dock.tsx:25-34: the header is the warning icon andlanguage.t("notification.permission.title")("Permission required",packages/app/src/runtime/i18n/en.ts:498). The request'ssessionIDis never shown.packages/app/src/session/requests/session-question-dock.tsx: the header showssummary()(546-556), which issession.question.title("Question",en.ts:570) orsession.question.progress(127-132).- Both docks are mounted in
packages/app/src/session/composer/session-composer-region.tsx:43-51.
OpenChamber labels a docked request from a descendant "From subagent" (chat.questionCard.fromSubagent, developing-today/openchamber packages/ui/src/lib/i18n/messages/en.ts:2493).
The TUI's permission prompt header has the same gap: "Permission required" plus the tool's title (packages/tui/src/routes/session/permission.tsx:200-214). I haven't checked the rest of the TUI root view for attribution. This issue covers the app; the TUI can be fixed alongside it or tracked separately.
Acceptance criteria
- A dock showing a request from a session other than the viewed one names that session, for example "From ". The title comes from
data.session.get(request.sessionID), with a fallback when it isn't loaded. - A request from the viewed session itself looks as it does today.
- New copy is an i18n key in
packages/app/src/runtime/i18n/en.tsonly, perpackages/app/AGENTS.md:30-31; other locales fall back to English. - An e2e test asserts the label for a subagent's request and its absence for the viewed session's own. "answers a subagent's permission from the root session after a fresh load" (
packages/app/e2e/regression/session-request-docks.spec.ts:212) already sets up the first case.
Activity
docs(roadmap): record the #380 and #124 completions in Done (#387) (#388