Skip to main content

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

CommandWhat it opens
NodalMerge: Open StudioThe Studio shell — tabs for Goal Workspace, Activity Center, Model & Agent Studio, Decision Convergence, Pathways
NodalMerge: Open ReviewDecision Convergence, scoped to a specific merge proposal
NodalMerge: Open Decision ConflictDecision Convergence in conflict-resolution mode
NodalMerge: Restart Studio HostRestarts the embedded .NET host process
NodalMerge: Show OutputExtension 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 StrategyMulti-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
Context tab:
  • 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 Interrupted agents 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 candidatemain; 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

PanelCore job
Goal WorkspaceCreate goals, explore the Decision Tree, run experiments/steering/counterfactuals
Activity CenterDirect work-unit/agent lifecycle without the Decision Tree
Model & Agent StudioProfiles, topology templates, session-wide defaults
Decision ConvergenceThe human approval gate — accept/reject/apply
PathwaysDAG visualization, timeline scrubbing, checkpoint marking