Skip to content

feat(framework): agent-pushed markdown views in the dashboard right rail#446

Merged
suleimansh merged 2 commits into
mainfrom
feat/dashboard-agent-views-441
Jul 12, 2026
Merged

feat(framework): agent-pushed markdown views in the dashboard right rail#446
suleimansh merged 2 commits into
mainfrom
feat/dashboard-agent-views-441

Conversation

@suleimansh

Copy link
Copy Markdown
Member

Part of #314 (the last open child). The right rail was fixed Docs/Log tabs. This lets the agent push arbitrary markdown views (e.g. showMarkdown()) into the rail as a first-class Views tab with a sticky top-nav, complementing the choice-gate rail (#440).

What

  • New view FrameworkEvent ({ kind:'view'; id; title; markdown }) + its formatFrameworkEvent case. Non-blocking, unlike choice.
  • parseMarkdownViews (turn-gate.ts): pulls every ```show-markdown block out of a turn's text (the first # line is the title, the rest is the body; falls back to "Note"), keying by a title slug so a re-show updates in place. Documented in AWAIT_PROTOCOL so the agent knows the block. Parsed on every turn in both the build (run.ts) and direct-prompt (prompt-run.ts) paths and emitted via the existing emit -> store.append -> live channel pipeline.
  • Client: agentViews(events) folds the stream (mirrors pendingChoices); a new ViewsRail renders the selected view's <Markdown> with a sticky top-nav; RightRail gains a Views tab (badge count) that the rail surfaces when a view exists and no choice is pending. +Page threads views down.

Verify

  • 457 framework tests pass (+5 parseMarkdownViews), dashboard typecheck + vite build + prerender clean, workspace typecheck 22/22.
  • parseMarkdownViews covered: titled block, no-heading fallback, several blocks + repeated-title-in-place, blank skip, none.
  • Live daemon on :4200 seeded with two view events (Deployment plan, Summary) for a browser check of the Views tab + nav; agentViews fold node-checked against them.

Closes #441

The agent can display ad-hoc markdown in the side panel with a non-blocking
show-markdown block (a plan, a summary, a writeup), parsed off the turn text like
the await gates. Each becomes a view FrameworkEvent that renders as a first-class
Views tab in the right rail with a sticky top-nav; re-showing the same title
updates that view in place. Complements the choice-gate rail.

Closes #441
@suleimansh suleimansh self-assigned this Jul 12, 2026
With the new Views tab the right rail can show four tabs; Project log wrapped to
two lines at w-80. Label it Log, matching Docs/Views/Choices, so the row fits.
@suleimansh suleimansh merged commit 18de94b into main Jul 12, 2026
2 checks passed
@suleimansh suleimansh deleted the feat/dashboard-agent-views-441 branch July 12, 2026 22:56
@suleimansh suleimansh mentioned this pull request Jul 12, 2026
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[The Framework] dashboard: arbitrary agent-driven right-rail views (showMarkdown) + sticky nav

1 participant