Skip to content

Editor lane + /team menu with auto-setup, plus the two hi-local fixes team-bench demanded - #135

Merged
davidrhodus merged 1 commit into
mainfrom
feat/editor-lane-team-menu
Jul 27, 2026
Merged

Editor lane + /team menu with auto-setup, plus the two hi-local fixes team-bench demanded#135
davidrhodus merged 1 commit into
mainfrom
feat/editor-lane-team-menu

Conversation

@davidrhodus

Copy link
Copy Markdown
Contributor

What

Follow-up to #133/#134 — turns the bench findings into workflow structure, and makes /team a one-keystroke experience.

Task-shaped routing (bench-proven)

  • delegate gains kind: "author" | "edit". Mechanical edits route to a new editor role (/team editor <model>, HI_EDITOR_* env) when configured; authoring stays on the delegate route; unknown kinds can never land on the small model.
  • Fixed: the direct delegate tool path ignored team routes entirely (only background tasks routed). It now rides run_routed with the kind-aware route.

Two hi-local fixes, both flushed out by hi team-bench

  • NemotronH thinks itself to death: the shipped template defaults enable_thinking=True, burning the whole output budget in <think>. NemotronH now renders with an empty think block (same stance as the DeepSeek-V4-Flash / SmolLM3 / MiniMax paths). Effect: nemotron-4b 1/4 → 4/6.
  • Generation never stopped: eos ids from generation_config.json now merge into the stop set. The 4B declares eos=2 in config.json but [2, 11] in generation_config — <|im_end|> never terminated a turn, so every completion ran to the token cap: 93s for 5-second answers. 20-70× latency fix.

v4 bench (6 tasks, compiled + asserted; TTFT is new)

model codegen bugfix edit multiedit repair json score tok/s ttft
laguna-s@2bit 5/6 5.3 2.0s
coder-32b 5/6 8.6 2.1s
nemotron-4b@8bit ✅ 4.6s ✅ 3.0s ✅ 3.8s ✅ 1.3s* 4/6 28.1 0.9s
nemotron-30b 0/6

*json 1.3s; repair failed. The editor lane wins bugfix/edit/multiedit/json on wall-clock — that's the routing table.

Easier to use

  • Bare /team opens an interactive role menu (auto-setup / delegate / editor / explore / skeptic / planner, live assignments per row); Enter drills into the annotated model picker.
  • auto-setup row / /team auto (TUI + REPL): delegate → best verified local model, editor+explore → the fast small one, skeptic → same server; provisioning chains through the single download slot with reuse.
  • Esc bug fixed: cancelling a team picker used to leave role state armed, so the next /model pick silently assigned a team role.

Also

  • Delegates in unconfigured Rust/Go workspaces derive a build gate (cargo check --workspace --all-targets / go build ./...) instead of "delegate unavailable" — the child's verify-repair loop now fires everywhere.
  • /config skeptic-local on reuses a running team server (free review, no second model in RAM); disabling restores routes without killing the executors' server.
  • team-bench grows multiedit (cross-file rename, both files must compile), repair (fix from a real rustc error), and time-to-first-token per task + median column.
  • DeepSeek V4 Flash joins the catalog (verified mlx-community ladder: 2bit-DQ@128GB / 3bit-DQ@192GB / 4bit@256GB / 8bit@512GB; 4bit = 151GB on disk). hi-local speaks V4 natively; entry is explicit-pick until a 128GB+ machine runs the bench, per the promotion gate.
  • nemotron-30b demoted with an honest 0/6 label.

Tests

1,710 pass across hi-agent / hi-tools / hi / hi-tui / hi-local-core / hi-mlx, including new coverage for kind routing, the role menu + auto-setup queue, Esc state clearing, the eos merge, NemotronH priming on both render paths, derived verify gates, skeptic reuse, and the new bench validators.

🤖 Generated with Claude Code

…ing fixes team-bench demanded

Task-shaped routing lands on bench evidence: `delegate` takes a `kind`
argument and `kind:"edit"` (mechanical, precisely-specified changes) rides a
new `editor` role — /team editor, picker-assignable, env-seedable — while
authoring stays on the delegate route. v4 bench proves the split: with the
fixes below, nemotron-4b executes edit/multiedit/json/bugfix in 1.3-4.6s
(vs 10-20s on the big coders) while only laguna/coder-32b author reliably
(5/6 each). The direct `delegate` tool path also now honors team routes at
all — it silently dropped them before (only background tasks routed).

Two hi-local fixes made small executors viable, both found by the bench:
NemotronH prompts render with an empty <think> block (the shipped template
defaults enable_thinking=True and burned the entire output budget thinking
— 1/4 → 4/6), and generation_config.json eos ids merge into the stop set
(the 4B declares eos=2 in config.json but [2,11] in generation_config, so
<|im_end|> never stopped a turn and every completion ran to the token cap:
93s for 5-second answers, a 20-70x latency fix).

Ease of use: bare `/team` opens an interactive role menu (auto-setup /
delegate / editor / explore / skeptic / planner, each row showing its live
assignment); Enter drills into the model picker; the auto-setup row — or
`/team auto` in both UIs — wires delegate to the machine's best verified
model, editor+explore to the fast small one, and points the skeptic at the
same server, chaining provisioning through the single download slot. Esc
now clears team routing state (it used to leave the role armed, so the
next /model pick silently assigned a team role instead of switching the
driver).

Rounding it out: delegates in unconfigured Rust/Go workspaces auto-derive
a build gate (cargo check / go build) instead of reporting "delegate
unavailable", so the child's verify-repair loop fires everywhere;
`/config skeptic-local on` reuses a running team server (free review, no
second model stacked in RAM) and disable never kills the executors'
server; team-bench grows multiedit (cross-file rename, both files must
compile), repair (fix from a real rustc error), and time-to-first-token;
DeepSeek V4 Flash (284B MoE, verified mlx-community 2/3/4/8bit ladder,
128GB+ Macs) joins the catalog explicit-only until someone benches it;
nemotron-30b's label records its 0/6.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@davidrhodus
davidrhodus merged commit 3656d58 into main Jul 27, 2026
1 check failed
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