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).
39 lines
3.0 KiB
Markdown
39 lines
3.0 KiB
Markdown
# 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](implementation-decision-log.md). The primary plan lives in
|
|
[../feature-implementation-plan.md](../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.md` files, 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](../build-phase-outline.md), [./.discovery-notes.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/model` ids are required for duplicate model names across hosts | Evidenced | 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 `opencode` can | Evidenced | plan-level |
|
|
| C6 | The current `opencode` bridge collapses local identity and needs a provider-preserving gateway | Evidenced | 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.json` plus `LLAMA_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-local` gateway
|
|
- OQ-4: whether add-a-machine is UI-driven in this batch
|
|
Resolution: D-7, no, keep config-driven
|
|
|
|
- **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.md` and 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.
|