Control Tower UI reference
Every user-facing action in the NodalMerge Studio VS Code extension, organized by panel — the practical “what can I click” companion to How Studio works and to Reference → API surface’s backend catalog.Command palette
| Command | What it opens |
|---|---|
NodalMerge: Open Studio | The Studio shell — tabs for Goal Workspace, Activity Center, Model & Agent Studio, Decision Convergence, Pathways |
NodalMerge: Open Review | Decision Convergence, scoped to a specific merge proposal |
NodalMerge: Open Decision Conflict | Decision Convergence in conflict-resolution mode |
NodalMerge: Restart Studio Host | Restarts the embedded .NET host process |
NodalMerge: Show Output | Extension output channel (host logs) |
Goal Workspace
The primary surface: create goals, watch the Decision Tree, inspect any node in the Decision Lens.Topbar
- Active Exploration — pick which session’s decision tree to view
- Exploration Strategy —
Multi-Agent Fanout(or another topology template) for a normal run, or one of four experiment strategies:Multi-Model Comparison,Architecture Fork,Library Comparison,Product Strategy Fork - Goal — the goal text
- ▶ Run — launches the goal under the selected strategy, review policy, and target
- ⚙ Settings — toggles the Exploration Settings panel below
Review / Target row (always visible under the topbar)
- Review: Human Required / Agent Approval / Hybrid (5 min) — sets this goal’s review policy
- Target: Candidate Branch / Direct — only shown when promotion branches are enabled session-wide; overrides the session default per goal
Exploration Settings panel (⚙)
- Auto-select agent profiles by capability (checkbox)
- Max concurrent workers (number)
- Scheduler poll interval, ms (number)
- Require build before proposal / Require tests before proposal (checkboxes — server-side policy gate, not a manual trigger)
Fork config panel (appears for any of the 4 experiment strategies)
Per fork: a Profile dropdown and an optional Constraint text field (e.g. “use gRPC instead of REST” for an Architecture Fork). + Add Fork adds another entry.Multi-Model Comparison picks 2 orchestrator profiles automatically and
ignores the constraint field; the other three require every fork to have a
constraint (the backend rejects the request otherwise).
Decision Tree (left column)
- Click a node to select it (loads its timeline + Decision Lens)
- Right-click → Fork Hypothesis, Re-explore, Fork from latest candidate, Fork from Known Good
- A parent with 2+ forks shows an N forks badge + Compare Results link
- A counterfactual node shows a Counterfactual badge + Compare with Original link
Reasoning & Execution Timeline (middle column)
Click any artifact or event to load it into the Decision Lens.Decision Lens (right column) — two tabs
Metadata tab:- Fork Hypothesis / Re-explore / Fork from latest candidate / Fork from Known Good — same actions as the tree’s context menu. Fork from Known Good lists the node’s branch’s marked checkpoints, then a goal and profile, then forks a new work unit seeded from that checkpoint’s content.
- ↺ Run with different model (completed/merged nodes) — creates a counterfactual: re-runs this node’s latest proposal under a different profile
- ⏸ Pause & Redirect (running nodes) — pauses the agent, prompts for a constraint, forks a sibling that resumes with it
- ↳ Fork from here (running nodes) — forks a sibling from this node’s current state with a new goal + optional constraint
- Loads the goal, plan, assumptions, constraints, evidence, execution results, allowed tools, and model for this node — the structured decision audit, never raw prompt text
- 📋 Copy as Markdown — copies the above to clipboard
- Constraints proposed by domain observers appear in the Artifacts chain here,
identifiable by their title prefix (e.g.,
[SecurityAgent] Missing rate-limit on /api/auth). See Guides → Domain observers.
Compare Results view (experiments)
- Click a fork card to select it
- Pick Winner — approves the selected fork’s latest proposal and rejects every other fork’s latest proposal
- Reset — clears the selection
- 📋 View proposals — opens the fork’s proposals
Compare with Original view (counterfactuals)
Side-by-side original vs. counterfactual: model/provider, status, confidence, files touched, diff summary for each, plus a “which was better” line when set.Activity Center
Secondary surface for direct work-unit/agent lifecycle management without going through the Goal Workspace’s Decision Tree.- Session override — filter this panel to one session
- + New Goal — create a work unit via sequential prompts: goal → owner → review policy → (if promotion branches are on) target (Candidate / Direct)
- Active Goals: Spawn (start an agent) · View Conflict → (when Reviewing)
- Running Agents: + Start Agent · Pause · Resume · ↺ Resume (for
Interruptedagents after a host restart) · Stop. Agents spawned by a connected headless peer appear in this list alongside interactively spawned agents and can be paused, resumed, or stopped from here — see Guides → Headless peer. - Pending Decisions: Review Decision →
- Blocked Explorations (dead-letter queue): Retry (when attempts remain)
Model & Agent Studio
Configuration surface — profiles, templates, and session-wide defaults.Profiles tab
Table of agent profiles with Edit / Delete per row, + Add Profile. The form: ID, label, domain, LLM provider (VS Code LM / OpenAI-compatible / Anthropic), model (with ↑ Refresh to fetch live model list), base URL + API key (hidden for VS Code LM), system prompt hint. Save Profiles persists everything.Exploration Strategies tab
Topology templates (orchestrator + worker assignments): Set Default, Edit, Delete, + Add Exploration Strategy. Save Strategies persists.Quick Explore tab
One-off run: strategy, goal, “run automated review before human gate” checkbox, ▶ Quick Explore.Pipeline Profiles tab
Stage-specific agent behavior (Orchestrate/Plan/Execute/Review/Merge): allowed tools, file-scope patterns, max iterations, system prompt. Edit / + Add Pipeline Profile.Session Defaults tab
- Default Review Policy dropdown
- Use candidate branch checkbox (session-wide promotion branch toggle)
- ↑ Promote to Main — applies
candidate→main; enabled only when the toggle above is on - Save Session Defaults
Domain observer enable/disable is config-file only — there is no toggle in this
panel. Set
Workspace:EnabledDomainAgents in appsettings.json and restart the
host, or override per-goal at agent spawn time. See
Guides → Domain observers.Decision Convergence
The merge-review gate. Two modes depending on the proposal/work-unit state.Proposal review mode
- Status badge, source/target branch, confidence, goal, summary, rationale
- Code Changes: Inline / Split diff toggle, per-file expand, Open Diff in Editor
- Evidence: build/test results, download full output when truncated
- Converged Decision section (if synthesized from multiple candidates): constituent proposal cards
- Validate Evidence · Accept Decision · Reject Decision · Apply Decision · Fork Hypothesis · Restore workspace (read-only pre-change files)
Conflict resolution mode
Shows the conflict report; resolution itself happens by editing the conflicting branches outside the panel, then re-running the merger.Pathways / Trajectory Replay
DAG visualization and historical scrubbing.- Replay Mode: Linear / Branch Explorer / Counterfactual
- DAG canvas: click/hover a node for details
- Scrubber: slide through the branch’s timeline (position shown as
N / Total) - Playback bar: ▶ Live (jump to latest) · ⎇ Branch from here (new work unit
seeded from the scrubbed branch’s current content) · 📌 Mark Known Good (label
- save checkpoint) · ↩ Restore Known Good (pick a marked checkpoint for this branch and restore the branch’s files to that point in place)
Summary
| Panel | Core job |
|---|---|
| Goal Workspace | Create goals, explore the Decision Tree, run experiments/steering/counterfactuals |
| Activity Center | Direct work-unit/agent lifecycle without the Decision Tree |
| Model & Agent Studio | Profiles, topology templates, session-wide defaults |
| Decision Convergence | The human approval gate — accept/reject/apply |
| Pathways | DAG visualization, timeline scrubbing, checkpoint marking |