Repository navigation
feat(ui-web): remove the chat dock under a task node - #643
Conversation
The desk tasks pane offered an input under each node of a stateful sub-agent with a live handle, sending into that instance's own lane. The product no longer wants a second place to write to a sub-agent from the task view, so the dock goes: the component, its mount on the context tab, its styles, its catalogue string and the two comments that described it. The desk's instance conversation pane keeps its own composer. Co-authored-by: Claude (claude-fable-5-1) <noreply@anthropic.com>
gloryfromca
left a comment
There was a problem hiding this comment.
No blockers; this can merge as far as I am concerned.
Reviewed the full github/main...HEAD diff and the surrounding task panel, the original dock implementation/history, remaining instanceSend callers, Web UI architecture terms, repository rules, backward compatibility, and the test replacement. The removal is complete and scoped: the component, mount, CSS, translation key, generated catalogue entry, imports, and stale class/layout documentation move together, while the sub-agent conversation composer remains intact. The replacement test asserts the requested absence for the formerly eligible stateful/live-handle case rather than weakening unrelated coverage.
Independent verification:
npm test --prefix ui-web -- src/features/tasks/- 8 files, 196 tests passednpm test --prefix ui-web- 192 files, 2571 tests passednpm run type-check --prefix ui-web- passednpm run lint --prefix ui-web- passed with 4 pre-existing warnings in untouched filesnpm run lint:i18n --prefix ui-tui- generated catalogue is up to datenpm run type-check --prefix ui-tui- passedgit diff --check github/main...HEAD- passed
…_chat_dock # Conflicts: # ui-web/src/features/tasks/TasksPage.tsx
gloryfromca
left a comment
There was a problem hiding this comment.
No blockers; this can merge as far as I am concerned.
Reviewed the revision delta and the resulting full github/main...HEAD diff. The only new branch commit merges current main; its TasksPage.tsx conflict resolution correctly preserves both the dock removal and main's new .tkbody tail-following behavior. I rechecked repository rules and Web UI architecture, affected callers/history, backward compatibility, and that the revised absence test does not weaken unrelated coverage. No prior finding threads exist to resolve.
Verification on this head:
npm test --prefix ui-web -- src/features/tasks/- 8 files, 201 tests passednpm test --prefix ui-web- 192 files, 2578 tests passednpm run type-check --prefix ui-web- passednpm run lint --prefix ui-web- passed with 4 pre-existing warnings in untouched filesnpm run lint:i18n --prefix ui-tui- generated catalogue is up to datenpm run type-check --prefix ui-tui- passedgit diff --check github/main...HEAD- passed
## Summary
The desk tasks pane drew an input box under every node of a stateful
sub-agent that had a live handle ("Continue chatting with X"), sending
into that instance's own lane through the same `turn.send` with `target`
the sub-agent composer uses. The product no longer wants a second place
to write to a sub-agent from the task view, so the dock is removed: the
`ChatDock` component and its mount on the node card's context tab, its
`.tkdock` styles, the `gui.tasks.continue_with` catalogue string (both
locales, with the TUI's generated table regenerated) and the two
comments that described the dock as pinned under the scrolling record.
`SendGlyph` and the `ds('subagents')` seam leave this file only; both
keep their other users. The desk's instance conversation pane keeps its
own composer, and nothing under `features/subagents` changes.
Ratchets: no CSS, class-namespace or i18n gate named `.tkdock`, the
dock's owner of the shared `go` class, or the removed key, so none was
lowered; the shared-class licence comment for `go` lost the clause that
cited the dock.
## Type
- [ ] Fix
- [x] Feature
- [ ] Docs
- [ ] CI / tooling
- [ ] Refactor
- [ ] Other
## Verification
- `npm test --prefix ui-web -- src/features/tasks/` -- 196 passed. The
one dock case is replaced by one asserting that a stateful agent's node
with a live handle, on the context tab, renders its card with no
`.tkdock` and no input; red against the previous `TasksPage.tsx` (the
card still drew the dock).
- `npm test --prefix ui-web` -- 192 files, 2571 passed, the contract and
CSS gates included.
- `npm run type-check --prefix ui-web`, `npm run lint --prefix ui-web`
-- clean (the 4 pre-existing react-hooks warnings are in untouched
files).
- `npm run gen:i18n --prefix ui-tui`, `npm run lint:i18n --prefix
ui-tui` ("generated catalogue is up to date"), `npm run type-check
--prefix ui-tui` -- clean.
- `grep -rn "continue_with\|ChatDock\|tkdock" ui-web/src ui-tui/src
raven docs-site/docs i18n` -- only the new test's own assertion remains.
- [x] Relevant tests pass locally
- [x] Relevant lint / type checks pass locally
- [ ] User-facing docs or screenshots are updated when needed
## Risk
- [x] Security impact considered
- [x] Backward compatibility considered
- [x] Rollback path is clear for risky changes
User-visible: the input under a task node is gone; a reader who wants to
talk to that sub-agent opens its conversation pane from the transcript
instead. No wire or Python change. Rollback: revert the single commit.
## Related Issues
N/A
Co-authored-by: Claude (claude-fable-5-1) <noreply@anthropic.com>
Summary
The desk tasks pane drew an input box under every node of a stateful sub-agent that had a live handle ("Continue chatting with X"), sending into that instance's own lane through the same
turn.sendwithtargetthe sub-agent composer uses. The product no longer wants a second place to write to a sub-agent from the task view, so the dock is removed: theChatDockcomponent and its mount on the node card's context tab, its.tkdockstyles, thegui.tasks.continue_withcatalogue string (both locales, with the TUI's generated table regenerated) and the two comments that described the dock as pinned under the scrolling record.SendGlyphand theds('subagents')seam leave this file only; both keep their other users. The desk's instance conversation pane keeps its own composer, and nothing underfeatures/subagentschanges.Ratchets: no CSS, class-namespace or i18n gate named
.tkdock, the dock's owner of the sharedgoclass, or the removed key, so none was lowered; the shared-class licence comment forgolost the clause that cited the dock.Type
Verification
npm test --prefix ui-web -- src/features/tasks/-- 196 passed. The one dock case is replaced by one asserting that a stateful agent's node with a live handle, on the context tab, renders its card with no.tkdockand no input; red against the previousTasksPage.tsx(the card still drew the dock).npm test --prefix ui-web-- 192 files, 2571 passed, the contract and CSS gates included.npm run type-check --prefix ui-web,npm run lint --prefix ui-web-- clean (the 4 pre-existing react-hooks warnings are in untouched files).npm run gen:i18n --prefix ui-tui,npm run lint:i18n --prefix ui-tui("generated catalogue is up to date"),npm run type-check --prefix ui-tui-- clean.grep -rn "continue_with\|ChatDock\|tkdock" ui-web/src ui-tui/src raven docs-site/docs i18n-- only the new test's own assertion remains.Relevant tests pass locally
Relevant lint / type checks pass locally
User-facing docs or screenshots are updated when needed
Risk
User-visible: the input under a task node is gone; a reader who wants to talk to that sub-agent opens its conversation pane from the transcript instead. No wire or Python change. Rollback: revert the single commit.
Related Issues
N/A