Skip to content

feat(studio): T01 test pane - #996

Merged
LinuxDevil merged 1 commit into
mainfrom
fb-t01-test-pane
Nov 8, 2026
Merged

LinuxDevil merged 1 commit into
mainfrom
fb-t01-test-pane

Conversation

@LinuxDevil

Copy link
Copy Markdown
Owner

Summary

Implements T01 (Forge Builder P6): the builder bottom drawer's first tab is now Test (renamed from Chat), per audit/forge-builder/tickets/p6-test/T01-test-pane.md.

  • DrawerTab 'chat' → 'test' everywhere (AppState.tsx, BottomDrawer.tsx TABS/TAB_PANELS/FLUSH_TABS/counts); default drawer tab is 'test'; chat state names unchanged. Tab label Test, icon FlaskConical, count = non-system chat messages.
  • New src/components/test/: TestPane (run bar over the chat thread, with runActions/aboveComposer slots for T05–T07), TestRunBar (role="group" aria-label="Test run": RunStatus pill, mono runStatus.provider, ticking m:ss elapsed with aria-label="Running for m:ss" while running, Open trace link when runStatus.traceId, then actions), useRunElapsed (1s interval only while running, cleared on stop/unmount, injectable now), useOpenTrace (extracted from the Topbar narrow menu — same /traces/<id> route, no behaviour change), test.css (tokens only; 32px run bar).
  • ChatPanel accepts aboveComposer rendered between the error notice and the composer; new empty copy: "Send a message to test this agent. Nodes light up on the canvas as it runs."; composer placeholder "Message the agent to test it".
  • Sending from the Test tab still goes through sendChatMessage → /agents/:id/message (D12b spec v2 path) — unchanged.
  • e2e a11y.spec.ts updated for the renamed tab.

Test plan

  • npm run typecheck --workspace apps/agent-forge — clean
  • npx vitest run --root apps/agent-forge — 178 files / 3448 tests pass, incl. new TestPane.test.tsx (6 tests: idle vs running run bar, elapsed ticking via fake timers + injected now, Open trace visibility, slot placement) and updated chatPanel.test.tsx (empty copy, aboveComposer slot)
  • npm run lint --workspace apps/agent-forge — 0 errors (33 pre-existing warnings, none in touched files)
  • npx fallow dead-code --workspace apps/agent-forge — no issues (full fallow/audit needs root coverage-final.json, left to CI)
  • e2e a11y spec not run locally (requires built studio + playwright); tab rename covered by unit tests

The builder bottom drawer's first tab is now Test (was Chat): a run bar
(status pill, provider/model, ticking elapsed clock while running, Open
trace once the status carries a traceId) above the chat thread and
composer, with runActions/aboveComposer slots for T05-T07.

- DrawerTab 'chat' renamed to 'test' (default 'test'); tab count keeps
  counting non-system chat messages
- New src/components/test/: TestPane, TestRunBar, useRunElapsed,
  useOpenTrace (extracted from the Topbar narrow menu, reused there)
- ChatPanel accepts aboveComposer; new empty-state copy; composer
  placeholder 'Message the agent to test it'
- e2e a11y spec updated for the renamed tab
@LinuxDevil
LinuxDevil merged commit a6edeaf into main Nov 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant