feat: foundations — canonical types, Parse grammar, env DSNs, health, chains
Phase 1 of the majordomo build: - llm/ canonical contract (messages, parts, tools, capabilities, streaming, Model/Provider, error classification) - health/ clock-injected tracker (threshold bench, exponential capped cooldown, reset-on-success) - root Registry + Parse (verbatim model ids, inline recursive alias expansion with cycle detection, chain dedup), LLM_* env-DSN providers (go-llm parity: lazy fallback + eager LoadEnv), health-aware chain executor behind the Model interface - provider/fake scriptable test provider; hermetic test suite incl. the trailing-thinking chain and foreman:// env loading - ADRs 0001-0008, CLAUDE.md, README (honest matrix), CI workflow, docs/phase-1-design.md Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+36
@@ -0,0 +1,36 @@
|
||||
# progress
|
||||
|
||||
## 2026-06-10 — Phase 1: foundations, ADRs, skeleton, docs
|
||||
|
||||
**Landed:**
|
||||
- Module scaffold (Go 1.26), `.gitea/workflows/ci.yaml` (foreman-style
|
||||
gates: build, vet, race tests, tidy-diff), `.env.example`.
|
||||
- `llm/` canonical contract: Message/Part (sealed; text+image),
|
||||
Request/Options, Response/Usage/FinishReason, Stream/StreamEvent,
|
||||
Tool/Toolbox (panic-safe Execute), Capabilities (zero-value semantics),
|
||||
Model/Provider interfaces, APIError + transient/permanent Classify.
|
||||
- `health/`: clock-injected tracker — consecutive-failure threshold,
|
||||
exponential capped cooldown, reset-on-success, thread-safe; full
|
||||
deterministic test suite (fake clock).
|
||||
- Root: Registry (providers/aliases/schemes/health), Parse with the binding
|
||||
grammar (verbatim model ids, inline recursive alias expansion, cycle
|
||||
detection, dedup), LLM_* env-DSN loading (go-llm-parity lazy fallback +
|
||||
eager LoadEnv/New scan), chain executor implementing Model
|
||||
(retry-on-transient, bench-on-repeat, skip-benched, 404-advance,
|
||||
fail-fast-on-auth, joined exhaustion errors). Built-ins register as
|
||||
resolvable stubs until their phases land.
|
||||
- `provider/fake/`: scriptable provider (per-model outcome queues, request
|
||||
recording, capabilities overrides, streaming) — the hermetic test rig.
|
||||
- ADRs 0001–0008 + index; CLAUDE.md; honest README with pending-marked
|
||||
matrix.
|
||||
- Tests cover the two required cases: the trailing-`thinking` chain parse
|
||||
and `LLM_M1=foreman://token@host` loading (plus DSN table, lazy fallback,
|
||||
cycle detection, chain failover/backoff/exhaustion, toolbox execution,
|
||||
error classification).
|
||||
|
||||
**Notes:** chain executor landed in Phase 1 (design was settled);
|
||||
Phase 2 deepens its test matrix (cooldown re-admission via fake clock,
|
||||
alias-in-chain failover, permanent-policy override) and wires anything the
|
||||
tests flush out.
|
||||
|
||||
**Next:** Phase 2 — exhaustive health/chain test matrix.
|
||||
Reference in New Issue
Block a user