Version, authenticate and fully trace ecosystem calls #84

Merged
claude merged 135 commits from overnight/eco-versioned-traces into master 2026-08-01 14:50:26 +02:00
2 changed files with 4 additions and 4 deletions
Showing only changes of commit 724e90759e - Show all commits
+2 -2
View File
@@ -30,7 +30,7 @@ import (
// model load. No turn ever gets half of one model and half of another.
// "Every path" means every path: the router, the replier, the mail
// extractor and the memory evaluator do not call acquire, they call
// llm.Client.Complete, so LLMPhraser implements llm.Gate and the client
// llm.Client.Complete, so LLMPhraser implements llm.SwapGate and the client
// enters through the same counter.
//
// 3. A failed load rolls back to the model that was working. The new server is
@@ -149,7 +149,7 @@ func (p *LLMPhraser) acquire() (string, func(), error) {
}, nil
}
// Enter implements llm.Gate so every holder of an *llm.Client is drained by a
// Enter implements llm.SwapGate so every holder of an *llm.Client is drained by a
// swap, not only the phrasing paths in this package.
//
// The router, the replier, the mail extractor and the memory evaluator do not
+2 -2
View File
@@ -40,7 +40,7 @@ func TestSwap_WaitsForARouterCallThatWentThroughLLMClient(t *testing.T) {
release := make(chan struct{})
c := llm.New(blockingLLM(t, release).URL, 5*time.Second)
c.SetGate(p)
c.SetSwapGate(p)
completed := make(chan error, 1)
go func() {
@@ -81,7 +81,7 @@ func TestSwap_RefusesARouterCallThatArrivesMidSwap(t *testing.T) {
open := make(chan struct{})
close(open)
c := llm.New(blockingLLM(t, open).URL, 5*time.Second)
c.SetGate(p)
c.SetSwapGate(p)
// Hold the door shut the way quiesce does.
_, held, err := p.acquire()