Skip to content

v0.6.0 — TUI planner cockpit, planner off claude -p, web tools#70

Merged
unohee merged 4 commits into
mainfrom
feat/v0.6.0-planner-cockpit-web-tools
Jun 18, 2026
Merged

v0.6.0 — TUI planner cockpit, planner off claude -p, web tools#70
unohee merged 4 commits into
mainfrom
feat/v0.6.0-planner-cockpit-web-tools

Conversation

@unohee

@unohee unohee commented Jun 18, 2026

Copy link
Copy Markdown
Owner

Summary

v0.6.0: the TUI becomes a planning cockpit, the Planner sheds its last claude -p dependency, and the agentic loop regains web search/fetch. Four focused commits.

TUI Planner Cockpit (INT-1572)

/plan <goal> → Planner previews a decomposition → human approves (y/n/edit to drop sub-tasks) → dispatch into the daemon loop → track in the Tasks tab. Shared planCommand.ts + PlanIO across the blessed TUI and readline chat. New POST /api/plan/dispatch (Linear sub-issues + heartbeat, or exec-pipeline fallback). Extracted createSubIssuesWithDependencies() and startExecTask() so the endpoint reuses the autonomous engines (no fork).

Planner off claude -p (INT-1574)

runPlanner now runs through the agentic loop via spawnCli (read-only, multi-turn) instead of claude -p --max-turns 1. Completes the INT-1420 claude -p removal; the planner can read the code before decomposing. PlannerResult unchanged.

Web tools (INT-1573)

web_fetch (keyless) + web_search (Tavily/Brave via key, else keyless DuckDuckGo) as first-class tools shared by every adapter — restores the capability claude -p used to provide. webTools option (default on), threaded through the adapters; SWE-bench passes webTools:false for benchmark integrity.

Verification

tsc --noEmit clean · oxlint 0/0 · full suite 711/711 (+19: planCommand 5, planner 5, webTools 9). Each engine reuse is structural (shared exported functions).

Related Issues

Refs INT-1572, INT-1573, INT-1574 (all Done)

unohee added 4 commits June 19, 2026 00:11
runPlanner now calls spawnCli (the same agentic-loop entry the worker uses),
read-only and multi-turn (maxTurns 15), instead of shelling out to
`claude -p --max-turns 1`. Removes the claude-binary dependency (completes the
INT-1420 claude -p removal) and lets the planner read the codebase before
decomposing. A READ_ONLY_GUARD is appended to the prompt; a bare `claude-*`
model id is dropped to the adapter default (org-prefixed anthropic/claude-*
passes). parsePlannerOutput was already plain-text-first, so the contract is
unchanged. New planner.test.ts (5).

Refs: INT-1574
The TUI becomes a planning surface: /plan <goal> runs the Planner to preview a
decomposition, gates on human approval (y/n/edit to drop sub-tasks), then
dispatches into the daemon loop; progress shows in the Tasks tab. Wired in both
the blessed TUI and the readline chat via a shared planCommand.ts + PlanIO.

- POST /api/plan/dispatch — dual path: Linear configured → parent issue +
  dependency-wired sub-issues + heartbeat; else → exec pipeline per sub-task.
- Extracted createSubIssuesWithDependencies() from the autonomous runner so the
  endpoint and decomposeTask share one engine (no fork). Extracted
  startExecTask() so /api/exec and the fallback share one lifecycle.
- runnerExecution also drops the planner model claude-opus-4-7 default (INT-1574).

New planCommand.test.ts (5).

Refs: INT-1572, INT-1574
Restores the web capability the claude -p harness used to provide, now as
first-class tools shared by every adapter (openrouter/gpt/local):
- web_fetch(url) — keyless: fetch → HTML stripped to text, capped.
- web_search(query) — pluggable backend: Tavily/Brave when TAVILY_KEY/
  BRAVE_SEARCH_KEY is set, else a keyless DuckDuckGo fallback.

New src/adapters/webTools.ts. Exposed via a `webTools` agenticLoop option
(default true), threaded through CliRunOptions → adapters → WorkerOptions.
TOOL_DEFINITIONS stays the original 5; web tools are a separate list appended
when enabled. sweBench passes webTools:false (benchmark integrity — no
searching up the gold patch). New webTools.test.ts (9).

Refs: INT-1573
@unohee unohee merged commit 62bd720 into main Jun 18, 2026
6 checks passed
@unohee unohee deleted the feat/v0.6.0-planner-cockpit-web-tools branch June 18, 2026 15:12
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