Editor lane + /team menu with auto-setup, plus the two hi-local fixes team-bench demanded - #135
Merged
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Follow-up to #133/#134 — turns the bench findings into workflow structure, and makes
/teama one-keystroke experience.Task-shaped routing (bench-proven)
delegategainskind: "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.delegatetool path ignored team routes entirely (only background tasks routed). It now ridesrun_routedwith the kind-aware route.Two hi-local fixes, both flushed out by
hi team-benchenable_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_config.jsonnow merge into the stop set. The 4B declareseos=2in 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)
*json 1.3s; repair failed. The editor lane wins bugfix/edit/multiedit/json on wall-clock — that's the routing table.
Easier to use
/teamopens an interactive role menu (auto-setup / delegate / editor / explore / skeptic / planner, live assignments per row); Enter drills into the annotated model picker./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./modelpick silently assigned a team role.Also
cargo check --workspace --all-targets/go build ./...) instead of "delegate unavailable" — the child's verify-repair loop now fires everywhere./config skeptic-local onreuses a running team server (free review, no second model in RAM); disabling restores routes without killing the executors' server.multiedit(cross-file rename, both files must compile),repair(fix from a real rustc error), and time-to-first-token per task + median column.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