Commit Graph
85 Commits
Author SHA1 Message Date
kyleandClaude Fable 5.1 6e9a70587a deploy/hyperborea: production config, user unit, install script, README (wake block pending titan's MAC)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 12:57:25 -07:00
kyleandClaude Fable 5.1 4f03cb2c52 README: context guard section (X-Crossbar-Ctx, 400 body), per-model context in the hosts view, router-mode note
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 11:50:38 -07:00
kyleandClaude Fable 5.1 11c8e053f7 Merge v2.1: cancellation recorded from the reverse proxy; router mode loaded/per-model context
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 11:49:45 -07:00
kyle 055ab079d4 Learn per-model context from /props?model=; only status "loaded" is loaded
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 11:47:35 -07:00
kyleandClaude Fable 5.1 cb5678abc0 v2.1 README: note the moved-header separator gap (v2 task text ambiguous, untested)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 11:45:52 -07:00
kyle f3dfdbfa50 Record cancellation from what the reverse proxy observed, not the request context
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 11:32:18 -07:00
kyleandClaude Fable 5.1 317293cfb3 v2.1 task 01: state the ReverseProxy facts (ErrorHandler before headers, ErrAbortHandler mid-body); note the refusal-ending
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 11:26:01 -07:00
kyleandClaude Fable 5.1 d596ec8abf v2.1 task 02: router mode — status loaded only, per-model /props, guard and hosts view use it; given tests
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 11:22:37 -07:00
kyleandClaude Fable 5.1 98faa3a57d Given tests: order arrivals by limiter state instead of sleeps (limiter, spread, cancel-while-queued)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 11:20:26 -07:00
kyleandClaude Fable 5.1 6c3a2cff8a Merge v2: learned context, context guard, wake-on-LAN, identity
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 11:14:27 -07:00
kyleandClaude Fable 5.1 a49a86c0e4 v2.1 plan: task 01 cancel-record with its given served_test.go; index for 02/03
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 11:12:58 -07:00
kyle d0d3203f73 Wire wake and identity into crossbar; v2 smoke and README
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 11:12:24 -07:00
kyle 47f49072cc Merge remote-tracking branch 'origin/master' into v2 2026-09-25 11:08:24 -07:00
kyleandClaude Fable 5.1 481ea12f4c v1 proxy test: order arrivals by limiter state; note the 499-on-served-200 defect for v2.1
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 11:08:16 -07:00
kyleandClaude Fable 5.1 27debb9790 v1 limiter test: release before reporting in TestParallelAndQueue (race with the final count check)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 11:02:07 -07:00
kyle 087323ad62 Merge remote-tracking branch 'origin/master' into v2 2026-09-25 10:50:23 -07:00
kyleandClaude Fable 5.1 7710352462 v2 smoke: send the 300 KB prompt via -d @file (argv element limit); note in README
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 10:49:56 -07:00
kyleandClaude Fable 5.1 6261b68a4b v2 plan: note the task 05 12-second stop (typo'd path, refusal-ending)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 10:18:28 -07:00
kyle a942e336d8 Add identity: whois resolver, checker, header mode, middleware; config for wake, peers, identity
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 10:16:51 -07:00
kyleandClaude Fable 5.1 962ea2aea4 v2 plan: note the router /props autoload fact and the v2.1 follow-up
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 10:12:29 -07:00
kyle bddf6c93f2 Add the wake package: magic packets and a waiter
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 10:03:07 -07:00
kyle 2fe3b9c865 Proxy: move or refuse prompts that do not fit the leased host's context
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 09:56:46 -07:00
kyle 959aec92f1 Merge origin/master into v2: sticky-growth test fixed 2026-09-25 09:55:15 -07:00
kyleandClaude Fable 5.1 6c8cbbc78d v2 plan: sticky-growth test appends turns instead of changing the first user message; note the finding
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 09:54:36 -07:00
kyle 056a527fd7 Health: learn n_ctx and total_slots from /props
Implemented /props learning in internal/health/health.go (added Status.NCtx/Status.Slots, PerSlotCtx, and a best-effort GET <base>/props appended to the poll after /v1/models; 0/unknown on any failure without failing the poll) and exposed them in internal/admin/admin.go HostView. Copied internal/health/props_test.go and the replacement internal/proxy/helpers_test.go byte-identical to docs/plans/v2/_files/.

Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 09:14:08 -07:00
kyle f73ffb0d27 Merge origin/master into v2: helpers_test.go answers /props 2026-09-25 09:12:28 -07:00
kyleandClaude Fable 5.1 927b2cfc4d v2 plan: fake upstream answers /props without counting it (task 01 replacement helper); note the finding
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 09:11:54 -07:00
kyle 5afacbc050 Health: learn n_ctx and total_slots from /props
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 09:10:38 -07:00
kyle 55679c5678 Merge v1.1: cancelled requests recorded as 499; empty usage is [] 2026-09-25 09:02:25 -07:00
kyleandClaude Fable 5.1 6bdcf437f4 v1.1 review: checklist, probes, three findings
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 09:02:13 -07:00
kyle 9f5b50acf6 Review fixes: record cancelled requests as 499; empty usage is an array
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 09:00:31 -07:00
kyleandClaude Fable 5.1 fbb952bae9 v1.1 plan: note the third stop (timing flakes under load, refusal-ending)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 08:59:56 -07:00
kyleandClaude Fable 5.1 d8f6d2a804 v1.1 plan: state the ReverseProxy abort behaviour the fix depends on; note the second stop
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 08:41:30 -07:00
kyleandClaude Fable 5.1 74b8af4ce0 AGENTS.md: a refused tool call is not a reason to end the turn; v2 plan (props, ctx guard, wake, identity, wiring) as acceptance tests; v1.1 run note
v2 given tests compiled against a panic-only skeleton (go vet clean); no reference
implementation.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 08:37:38 -07:00
kyleandClaude Fable 5.1 9ba04b16e0 v1.1 plan: cancelled requests recorded as 499, empty usage is []; tests proven failing on master
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 08:28:07 -07:00
kyle bebee332a5 Merge v1: leases, limiter, chooser, fingerprint, SQLite store, accounting, admin (8/8 tasks by Ornith) 2026-09-25 07:00:34 -07:00
kyleandClaude Fable 5.1 d7d8fcfa3b v1 review: checklist, outside probes, five findings; fill the Model column
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 07:00:21 -07:00
kyle 9e9750f281 Merge origin/master into v1: plan notes 2026-09-25 07:00:21 -07:00
kyleandClaude Fable 5.1 c6d115a8ff v1 plan: reference copy of the one edited given file (recorder_test.go)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 06:59:19 -07:00
kyle cf2aa24393 Smoke run for v1; README for leases, admin and accounting
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 06:56:54 -07:00
kyle 587ec7a1ec Merge origin/master into v1: per-model free slots rule, task 08 step 1b 2026-09-25 06:50:42 -07:00
kyleandClaude Fable 5.1 dc6066be8b v1 plan: Chooser free slots are per model (task 05 rule corrected, task 08 step 1b); note the finding
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 06:50:09 -07:00
kyle d82bfba3ec Wire the store, lease table and limiter into crossbar
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 06:38:36 -07:00
kyle 4df85d83c3 Merge origin/master into v1: task 06 text fix 2026-09-25 06:34:26 -07:00
kyle 32ac7f549a Admin: leases, pin, release, drain, usage, metrics
cmd/crossbar/main.go calls admin.Handler with the new 6-arg signature, passing nil for the not-yet-wired leases/limiter/store/drainer (task 07 wires them) so go vet and go test ./... pass on cmd/crossbar. This is a compile fix, not the task-07 wiring; noted in the implementer-log.

Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 06:33:29 -07:00
kyleandClaude Fable 5.1 c2136b3515 v1 plan: task 06 must update the one admin.Handler call in main.go for the gate; note the finding
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 06:29:09 -07:00
kyle c2a8b88a3f Merge origin/master into v1: task 06 split into admin + main 2026-09-25 06:08:28 -07:00
kyleandClaude Fable 5.1 4da47b3dfa v1 plan: split task 06 into admin (06) and main wiring (07); smoke becomes 08; note the finding
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-25 06:07:53 -07:00
kyle 97f7cdffd9 Route by lease, queue per host and model, record every request
Implemented-By: OpenCode session (model recorded in docs/implementer-log.md)
2026-09-25 05:15:21 -07:00
kyle 02008f6d56 Merge origin/master into v1: given proxy tests split under the line limit 2026-09-25 05:08:12 -07:00