feat(booterm): structured pty_exited WS notifications. Plan-validated, impl-validated, code-reviewed green (contracts build clean, contracts test 29/29, booterm + web typecheck clean). wip: in-progress inference/provider refactor (agents.ts, provider.ts, new llama-providers.ts, removed llama-args-validator), plus arena, dispatcher, compaction, schema changes. openspec: pty-exit-notifications complete; x-agent-flags planned (not yet implemented).
3.0 KiB
Implementation Iteration History: Multi-Provider Local Models
This file records how the implementation plan was assembled from the existing research, OpenSpec docs, and codebase review. Committed decisions live in implementation-decision-log.md. The primary plan lives in ../feature-implementation-plan.md.
R1: Coordinator pass grounded in source docs and local code review
-
Specialists engaged: coordinator-only pass using the existing research note, OpenSpec design/tasks, implementation analysis, root and app
CLAUDE.mdfiles, ADRs, coding standard, and targeted code search. No separate specialist tool round was run in this repo pass. -
New input provided: ../build-phase-outline.md, ./.discovery-notes.md, the OpenSpec batch, and the current code seams in server, web, and coder.
-
Claim ledger:
# Claim State Spec-maturity C1 There is no single source of truth for local providers shared by server and coder Evidenced plan-level C2 Composite provider/modelids are required for duplicate model names across hostsEvidenced plan-level C3 Routing logic is duplicated across streaming, non-streaming, context, compaction, task-model, and Arena Evidenced plan-level C4 Favorites belong in settings plus client derivation, not in the server catalog Evidenced plan-level C5 Native BooCoder can adopt the shared resolver before opencodecanEvidenced plan-level C6 The current opencodebridge collapses local identity and needs a provider-preserving gatewayEvidenced plan-level C7 Arena is a separate local-model consumer and must be planned explicitly Evidenced plan-level C8 BooControl depends on this substrate and should not be built first Evidenced plan-level -
Open Questions raised:
- OQ-1: shared local-provider authority format and location
Resolution: D-1,
/data/llama-providers.jsonplusLLAMA_PROVIDERS_PATH - OQ-2: canonical local model identity format
Resolution: D-2, composite
provider/model - OQ-3: how to achieve external-agent parity honestly
Resolution: D-6,
boocode-localgateway - OQ-4: whether add-a-machine is UI-driven in this batch Resolution: D-7, no, keep config-driven
- OQ-1: shared local-provider authority format and location
Resolution: D-1,
-
Spec-maturity tags: all findings were plan-level. No spec-stage reopening was required because the earlier research and OpenSpec docs already settled the behavior.
-
Resolution source: evidence from source docs plus current code inspection.
-
Decisions produced: D-1, D-2, D-3, D-4, D-5, D-6, D-7, D-8.
-
Changed in plan: initial authoring of
feature-implementation-plan.mdand its three supporting artifacts. -
Next-step recommendation: go to synthesis. The work is ready to execute as W1 through W8 in order, with W7 as the main hard seam and W8 as the operational closeout.