Skip to content

feat: idle-time self-test, context probe, resources roll-up and usage measurement - #52

Merged
REPPL merged 2 commits into
mainfrom
feat/model-self-test
Sep 15, 2026
Merged

REPPL merged 2 commits into
mainfrom
feat/model-self-test

Conversation

@REPPL

@REPPL REPPL commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Four intents from one lane, built and reviewed on one branch because their surfaces are the same files.

What lands

  • The self-test (itd-2609100457007827): measures every downloaded model while the Mac is idle — llama-bench's pp512 and tg128, a concurrent tg128, the load time — through the pool's ordinary Acquire, never evicting, yielding the moment a client appears (including a client refused for want of room, via a new Residency.Refusals counter), into a bounded 0600 file with a view on the Statistics tab. Off by default; self_test in config, a Settings checkbox, a posture-page line.
  • The context-window probe (itd-2609091301112705): a second job of the same idle loop. Sweep and bisect through this Mac's own OpenAI endpoint; the window on the registry entry with the provenance that makes it stale; measured_context and measured_bound on the models list; Measure now and Use this window on the card; a floor when a gateway bound stopped it. context_probe and idle_threshold_sec in config.
  • The resources roll-up (itd-2609091903463596): downloaded/loaded, disk and free disk, budget against resident and exiting, at the head of the Models tab; each card names both windows.
  • Usage measurement (itd-2609091712141073): six request fields (the two windows, the estimate, the judged figure, in-flight at admission, override names), launch sampling on the load event, a fifth record kind footprint (adr-2609121450000000 supersedes adr-2609090716413337), a sampler reading top's physical footprint with a deadline, three views on the Statistics tab. ApproxRecordBytes 230 → 380, and the docs' arithmetic with it.

Review

Each intent had a ruthless review and a security review; every blocking finding is fixed and recorded in .abcd/work/DECISIONS.md. Three integration tests drive the probe through the real gateway and a real pool over a fake launcher.

Gates

go test -race ./..., go vet ./..., gofmt -l ., abcd docs lint green on 6b1f600. abcd lint adds nothing to main's count.

Owed after merge

  • Four fidelity audits: rcp-750863424b6e (self-test; re-run, its digest is stale), rcp-4431dce599cc (probe), rcp-81fed0a81798 (resources), rcp-916dd6b8bf3f (measurement).
  • The probe's manual check against the 2026-09-06 campaign script on one real model before a published window is trusted.

https://claude.ai/code/session_01NU6NHFLGFYFuA1z4eqFz8j

… measurement

Four intents from one lane, landed together because their surfaces are the
same files: the panel, the control plane, the app's composition root, the
configuration and the pool.

The self-test (itd-2609100457007827) measures every downloaded model while
nobody is using the Mac — llama-bench's pp512 and tg128, a concurrent tg128
and the load time — through the pool's ordinary Acquire, never evicting,
yielding the moment a client appears, into a bounded 0600 file with a view
on the Statistics tab.

The context-window probe (itd-2609091301112705) is a second job of that one
idle loop: a sweep and a bisection through this Mac's own OpenAI endpoint,
the window recorded on the model's registry entry with the provenance that
makes it stale, published on the models list as measured_context and
measured_bound, adopted as the served window only by the operator's hand. A
reading one of the gateway's own bounds stopped is a floor and says so.

The resources roll-up (itd-2609091903463596) adds up what the Models tab
already knows, with free disk on the snapshot from the one reader.

Usage measurement (itd-2609091712141073) gives the request record the facts
that decide a served window and a concurrency, the load event the launch
sampling, and the store a fifth record kind — a footprint reading every
thirty seconds per server, from top's physical figure with a deadline — with
three views on the Statistics tab and every field on the reference page.

Each intent had two adversarial reviews applied; the decision lines in the
records say what changed and why.

Assisted-by: Claude:claude-fable-5-1
Claude-Session: https://claude.ai/code/session_01NU6NHFLGFYFuA1z4eqFz8j
The intent, spec, capture, decision and calibration records for the
self-test, the context probe, the resources view and usage measurement:
four intents to shipped/, four specs closed, three follow-up captures for
this lane, one resolved, the decision record superseding the statistics
store's record kinds, and the dated lines behind every choice.

Assisted-by: Claude:claude-fable-5-1
Claude-Session: https://claude.ai/code/session_01NU6NHFLGFYFuA1z4eqFz8j
@REPPL
REPPL enabled auto-merge September 15, 2026 07:50
@REPPL
REPPL added this pull request to the merge queue Sep 15, 2026
Merged via the queue into main with commit acacd07 Sep 15, 2026
6 checks passed
@REPPL
REPPL deleted the feat/model-self-test branch September 15, 2026 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant