Repository navigation
Conversation
Adds the approved prototype and the OpenSpec change architect-decision-board.
The top tile always says where things are in the Architect's words. One large tile shows what matters now: the question, the stop and its fix, the live work, or the result. Plan and Decisions made appear only when they have content. Live work is on the page, so the Work view loses its Live tab. An assumption can carry its reason, and the owner live notice keeps the last three finished actions of the turn. OpenSpec change: architect-decision-board
… it waits on a check The wait card is drawn as a board tile.
|
React Doctor found 2 new issues in 1 file · 2 warnings · score 93 / 100 (Great) · 0 fixed · vs 2 warnings
Reviewed by React Doctor for commit |
…t sees A step's saved capture shows on the step and on the result. The last browser screenshot shows in Live for the current turn. The runtime reads both through a new picture request, which only reads inside the project's own evidence and browser folders. Also fixes six review findings: a tool already running when the watch opens is counted, an open decision no longer hides a stopped Workflow's controls, Plan and Research are reachable before any step exists, the wait tile cannot say Working without live work, and the top sentence uses a newer outcome.
Review round 1 (gpt-6-astra, high)Paths below are relative to 1. Runtime
2. UI
3. Additional spec mismatches
Status at 4dc7b5fFindings 1 to 5 are fixed. Finding 6 is settled by narrowing the spec: recent actions are shown for the Architect's own work, because a Room member's snapshot carries no history of finished tools. |
…stays current A picture file that is a link to somewhere outside the project folder is not read. The result shows the proof of the step checked last, not the step listed last. A short browser call that ends between two updates now makes the board ask for the new screenshot.
Review round 2: the fixes (gpt-6-astra, high)Paths are relative to
Status at 1314c0cAll three are fixed. The reader resolves links and refuses a file outside the project folder. The result picks the step with the latest check time. The watch now sends a count of finished tool calls, and the picture is asked for again when the count changes. |
…sions under the plan A real Sudoku project was followed from the request to its check, and the board was changed for what the run showed. - Live rows show the face the Room gives each member. - The clocks are removed. They timed one model call and reset every few seconds. - Arriving text sits in a box of fixed height, so the tiles below do not move. - The state line says who is at work, not the action in hand. - Decisions made is a list under the plan. A row opens to show its reason. - Text sizes are the host's text-xs, text-sm and text-base. - While the start prompt is open the board says "Approve the start". architect-story.agent.spec.ts is the gated capture run that produced the pictures.
… run leaves dangerous commands to the user
| } | ||
|
|
||
| /** The large tiles that apply now, in their fixed order, then the decisions made. */ | ||
| function BoardColumn({ record, actions, page, board, activity, wait, rows, notice, headerActions, onOpenWork, onChangeDecision, hasPlan, asking }: BoardColumnProps) { |
There was a problem hiding this comment.
React Doctor · react-doctor/no-high-complexity-react-function (warning)
BoardColumn has cyclomatic complexity 21, cognitive complexity 15, and maximum nesting depth 1, so its React logic is hard to understand and change. Extract independent branches into components or hooks.
Fix → Extract independent render branches and state logic into focused components or hooks until the control flow is easy to follow.
| ); | ||
| } | ||
|
|
||
| export function ProjectPage({ record, actions, onBack, onOpenModels, onOpenInspector, onOpenHistory, onOpenWork, confirm, runtimeRunning, permissionPending = false, startRefusal = null }: ProjectPageProps) { |
There was a problem hiding this comment.
React Doctor · react-doctor/no-high-complexity-react-function (warning)
ProjectPage has cyclomatic complexity 18, cognitive complexity 16, and maximum nesting depth 1, so its React logic is hard to understand and change. Extract independent branches into components or hooks.
Fix → Extract independent render branches and state logic into focused components or hooks until the control flow is easy to follow.
Review round 3 (gpt-6-astra, high effort)Scope: Result: no defects found that fail now on a reachable path. |
Stacked on #624. The base is
feat/improve-architect-orchestrator-autonomy, so this diff is only the board. It rebases onto main when #624 merges.What this does
The Architect project page becomes one board. It follows the approved prototype
apps/styleguide/public/prototypes/architect-one-screen.html. OpenSpec change:architect-decision-board.picturerequest, which refuses anything outside the project folder.Prototype (left) and built (right)
States the prototype does not draw:
Differences from the prototype that stay
Seen in the running app
One real project was run on 2026-10-08 with
apps/desktop/e2e/architect-story.agent.spec.ts: a Sudoku game, a research Room first, then a Workflow, on deepseek-flash. It ran 45 minutes and spent $1.16. Four pictures are inopenspec/changes/architect-decision-board/evidence/real-run/.Seen working with real data: the Live tile with the Architect's own text and its last three actions, the Room's members listed by name, and the proof picture on a checked step.
Changed after that run (8a27264, d4b91b7): Room faces on the Live rows, no clocks, a fixed box for arriving text, a state line that says who is at work, Decisions made as a list under the plan, the host's type tokens, and "Approve the start" while the start prompt is open.
Not verified here
Found by the real run, not fixed here
Review
Two rounds with gpt-6-astra at high effort, both posted below. Round 1 found six defects. Five are fixed. The sixth, a Room member showing no earlier actions, is settled by narrowing the spec to the Architect's own work, because a member's snapshot has no history of finished tools. Round 2 found three defects in the fixes, all fixed. The two commits made after the real run are in a third round.
Checks
pnpm typecheck --force: 29 of 29.BoardColumn. Two older warnings are unchanged.