Commit graph

  • 549962cb8a quota meter: the weekly reading comes from the CLI's own rate-limit event; while a lease is live and the reading is stale the connector makes the smallest real call. The usage poll and its HTTP client go: the setup token can never reach that endpoint (squash of eureka-body/quota-meter-stream 7d4c1bf..c298d9d; Soul s4-s5) main Meta Vens 2026-11-03 13:12:31 +01:00
  • c298d9d07d quota: asking_at is crate-visible for the meter's tests eureka-body/quota-meter-stream Meta Vens 2026-11-03 12:45:55 +01:00
  • a98594ed39 meter: driven by the connector's own lease state, not the brake store (findings brake-store-broken-reads-as-held, braked-bounce-unobserved, rejected-reading-backs-off-six-hours, meter-failure-kind-read-by-nobody) Meta Vens 2026-11-03 12:45:21 +01:00
  • 877f7a92cd meter: the call leaves no transcript (finding meter-transcripts-need-no-keeping) Meta Vens 2026-11-03 12:45:21 +01:00
  • 98e3ae458f stream: the cell keeps only the five_hour and seven_day windows (finding rejected-reading-backs-off-six-hours, per-model bucket) Meta Vens 2026-11-03 12:45:13 +01:00
  • 21feb71304 meter: pin the log's words and the clock (mutation survivors State::line, unix_ms) Meta Vens 2026-11-03 12:24:17 +01:00
  • ccfc957bb5 Cargo.lock: ureq and its TLS and ICU closure leave the graph with the usage poll (377 lines) Meta Vens 2026-11-03 12:19:34 +01:00
  • 9144fc7019 quota: restore the observe_at signature the doc rewrite swallowed Meta Vens 2026-11-03 12:18:25 +01:00
  • 65665225bf meter: the weekly reading is kept fresh by one real claude call, not an endpoint the token cannot reach Meta Vens 2026-11-03 12:16:40 +01:00
  • 7d4c1bf56e usage-meter-poll: gate fixes: the timeout is read per request, serve has a refusal test, the RFC 850 guard is pinned eureka-body/usage-meter-poll Meta Vens 2026-11-01 03:30:55 +01:00
  • 8fb8b5a71d usage-meter-poll: the serve test asks a loopback fake, never the provider (finding serve-test-asks-real-provider) Meta Vens 2026-11-01 03:17:08 +01:00
  • f242290ca5 usage-meter-poll: pin what the production client is built with (finding new-client-timeout-unpinned) Meta Vens 2026-11-01 03:17:08 +01:00
  • 481428a7ce usage-meter-poll: Retry-After reads all three HTTP-date forms (finding retry-after-obsolete-date-forms) Meta Vens 2026-11-01 03:17:08 +01:00
  • e17ef16d48 usage-meter-poll: a subprocess test that serve --config starts the poll Meta Vens 2026-11-01 02:49:16 +01:00
  • c1cc349b19 usage-meter-poll: the cell decides how a reading combines; a poll is as old as its question Meta Vens 2026-11-01 02:49:16 +01:00
  • 6982cbca7e usage-meter-poll: pin the log lines and the thread loop Meta Vens 2026-11-01 01:44:35 +01:00
  • 7f3a46313e usage-meter-poll: test helper no longer shadowed by its own binding Meta Vens 2026-11-01 01:37:29 +01:00
  • 9143d2c5e2 usage-meter-poll: serve_config starts the poll beside the leases Meta Vens 2026-11-01 01:35:51 +01:00
  • 79792eea85 usage-meter-poll: the usage poll, the QuotaCell's second sensor Meta Vens 2026-11-01 01:35:50 +01:00
  • c1802d85be lease v2: committed byte goldens, rustfmt eureka-body/connector-usage-only Meta Vens 2026-10-31 05:38:48 +01:00
  • cfea6854ab lease tests: the fake unit record is global, keep it on invocation 1 Meta Vens 2026-10-31 05:30:41 +01:00
  • 9f10887169 lease v2: byte goldens, hold-loop and lease-helper tests Meta Vens 2026-10-31 05:27:38 +01:00
  • 9db62027eb connector-usage-only: comment Meta Vens 2026-10-31 05:08:19 +01:00
  • 7d9a6392a7 connector-usage-only: comments Meta Vens 2026-10-31 04:59:02 +01:00
  • a828602649 connector-usage-only: drop a stray doc comment Meta Vens 2026-10-31 04:54:14 +01:00
  • bb8909f2c2 connector-usage-only: regenerate v4 goldens and schemas, format, fix tests Meta Vens 2026-10-31 04:51:05 +01:00
  • 28f2e5d2e7 connector-usage-only: test import Meta Vens 2026-10-31 04:49:29 +01:00
  • dcb5f109f7 connector-usage-only: store-failure tests, README front door Meta Vens 2026-10-31 04:48:24 +01:00
  • af5da3dfaa connector-usage-only: test fixes Meta Vens 2026-10-31 04:44:45 +01:00
  • 702e903fdd connector-usage-only: fix serve test splice Meta Vens 2026-10-31 04:44:01 +01:00
  • 06a47bb13f connector-usage-only: delete the dollar authorities (WIP, does not yet build) Meta Vens 2026-10-31 04:43:18 +01:00
  • d2b82a6c50 lease-persona-callers: the identity bound keeps room for the Persona sequence eureka-body/lease-persona-callers Meta Vens 2026-10-31 01:59:39 +01:00
  • 47a4dcc6b4 lease-persona-callers: model-connector lease callers take the turn Meta Vens 2026-10-31 01:58:12 +01:00
  • 1bf9fdb437 lease-persona-callers: rustfmt Meta Vens 2026-10-31 01:57:21 +01:00
  • 13cbdaf23c lease-persona-callers: a lease caller names its turn kind; Persona and Self of one caller lease side by side Meta Vens 2026-10-31 01:56:34 +01:00
  • fdcfa063c7 connector-many-callers: one connector serves every Mind as its own caller; session handles are an HMAC under a connector secret over caller, session, instance, instructions, model and transcript prefix; config add-caller/add-lease-caller; one owner for distinct admissions (squash of eureka-body/connector-many-callers d1f25b5..a96b276; Soul s1-s2) Meta Vens 2026-10-30 00:11:53 +01:00
  • d1f25b5ae6 claude-self-run-lease: Self runs borrow the one Claude token over a unix socket bound to the peer's uid, its pidfd and its unit's InvocationID; the connector sets the reservation, settle bills reported per-model usage uncapped, no report bills the reservation (squash of eureka-body/claude-self-run-lease 480cf94..b5f26ef; Soul s1-s3) Meta Vens 2026-10-29 21:54:03 +01:00
  • 480cf941c8 claude-turn-schema-quota: schema-typed Persona replies via --json-schema, token on fd 3 never in the child env, per-window plan-quota capture, communal spend readout, not-logged-in bills zero (squash of eureka-body/claude-turn-schema-quota e867fad..429b344; Soul s1, s2) Eureka 2026-10-29 20:18:35 +01:00
  • 429b344e40 Spend readout schema: escape the description newlines as the generator does eureka-body/claude-turn-schema-quota Meta Vens 2026-10-29 20:08:51 +01:00
  • 45bfc16451 Regenerate the spend readout schema by hand to the type Meta Vens 2026-10-29 20:07:38 +01:00
  • 3d8addfec4 Pass the schema text to the stream reader Meta Vens 2026-10-29 20:06:23 +01:00
  • 32ab30df7e rustfmt Meta Vens 2026-10-29 20:05:39 +01:00
  • 84674650e7 Per-window plan quota with expiry; no-call results bill zero; structured output must be an object; schema turns hand out no resumable session Meta Vens 2026-10-29 20:05:02 +01:00
  • 6799b797fc Serialize the descriptor-number tests so none sees a number another freed (place-fd-test-races) Meta Vens 2026-10-29 20:05:01 +01:00
  • 167bca6673 Pin the readout frame bound with a deterministic envelope (nonce width varies the frame) Meta Vens 2026-10-29 19:25:36 +01:00
  • f5b37fb24d Kill the survivors: descriptor placement as a testable function, token bound at its edge, zero-use window kept, readout identity and frame edge pinned Meta Vens 2026-10-29 19:24:11 +01:00
  • 153bfb159c Publish the spend readout schema Meta Vens 2026-10-29 19:02:04 +01:00
  • 8cf883ed11 Fix test shadowing and gate the readout encoders to the daemon feature Meta Vens 2026-10-29 19:00:15 +01:00
  • 0762370219 claude-connector: output_schema_json lowers to --json-schema and the structured output is the one AssistantText; token on a pipe fd, never in the child env; QuotaCell keeps the plan windows from rate_limit_event; check polish (loose model-id form with the price table as the known list, token checked last and unset CREDENTIALS_DIRECTORY named, usage names the unit's environment, deadline on verbs in tests) Meta Vens 2026-10-29 18:58:37 +01:00
  • 244531426f spend_readout: a CultNet operation beside invoke reports each caller's spent and reserved micro-USD against its ceiling and the backend's plan quota (gamecult.model.spend_readout.v1); ProviderBackend::plan_quota; ConnectorClient::spend_readout Meta Vens 2026-10-29 18:58:37 +01:00
  • e867fad379 B4b1 claude-connector-binary: connector daemon over one CultCache config document; token from a systemd credential, pin before every spawn, private prompt dir, 401/403/429 door set, shared readiness for check and serve (squash of eureka-body/claude-connector-binary 200933f..67c7849; Soul s1, s2) Eureka 2026-10-29 12:59:23 +01:00
  • 67c7849cb6 claude-connector: pin every serve-error mapping to a field with no stored value eureka-body/claude-connector-binary Meta Vens 2026-10-29 12:18:50 +01:00
  • 85ed36d292 claude-connector: rustfmt and clippy on the readiness tests Meta Vens 2026-10-29 12:10:35 +01:00
  • 2f2f7a9db5 claude-connector: pre-spawn failures bill zero, model ids and prices are fuses, check runs serve's readiness, serve errors name fields Meta Vens 2026-10-29 12:08:29 +01:00
  • 83c93b2bb8 claude-connector: pin the config envelope, exact bounds and the prompt-dir type check Meta Vens 2026-10-29 11:35:44 +01:00
  • b44c5a3b75 claude-connector: the binary over one typed CultCache config document Meta Vens 2026-10-29 11:26:32 +01:00
  • 9a062f0846 claude-connector: token from a systemd credential, pin before every spawn, prompts in prompt_dir, door set 401/403/429 Meta Vens 2026-10-29 11:26:30 +01:00
  • 200933f7cf B4a claude-code-backend: Claude backend driving the unmodified claude binary on the operator's subscription; tool-less turns, per-turn usage, process-group kill (squash of eureka-body/claude-code-backend e0c0832..341be82; Soul s1, s2) Eureka 2026-10-29 11:03:03 +01:00
  • e0c0832ae0 connector-spend (B3c): reserve-then-settle spend in the replay ledger, one charge owner, a windowed per-caller ceiling (squash of eureka-body/connector-spend 1d51e71..45d0927) Meta Vens 2026-10-28 18:47:06 +01:00
  • 45d0927019 connector-spend: delete the public admission_window_start_unix_ms, which no operator surface carries (s4.catch-up-instant-reaches-no-operator) eureka-body/connector-spend Meta Vens 2026-10-28 18:13:24 +01:00
  • d6f9792f39 connector-spend: one function decides the charge; a bound result is billed its true cost whatever else is malformed (s4.bound-malformed-overrun-undercharged, s4.binding-identity-unpinned) Meta Vens 2026-10-28 18:13:14 +01:00
  • 68c6fd7b2a connector-spend: pin that a clock reading exactly at the window start is not behind it Meta Vens 2026-10-28 17:37:36 +01:00
  • 85afd90a95 connector-spend: blank line between tests Meta Vens 2026-10-28 17:33:59 +01:00
  • bdf3179e10 connector-spend: correct two test assertions (request-2 holds its reservation; the old-window test now fills the newest window with live reservations) Meta Vens 2026-10-28 17:33:42 +01:00
  • 07b89d90cf connector-spend: a caller held in a future window by a behind clock is refused with a named ClockBehindAdmissionWindow, not SpendCeiling Meta Vens 2026-10-28 17:32:16 +01:00
  • b32be5852c connector-spend: pin that a stepped-back clock admits into the newest window, not an older live one Meta Vens 2026-10-28 17:31:42 +01:00
  • 75715fc203 connector-spend: pin that a result that is not transported is charged the reservation Meta Vens 2026-10-28 17:31:41 +01:00
  • 52307f83ba connector-spend: a result not bound to this request is charged the reservation, not its own usage Meta Vens 2026-10-28 17:31:36 +01:00
  • 5c4e043950 connector-spend: pin the property-test generator; run_window needs no clock offset Meta Vens 2026-10-28 16:50:56 +01:00
  • bb863b1db8 connector-spend: a misreported cost is charged the usage's true cost; fix the other-caller test's request id Meta Vens 2026-10-28 16:39:48 +01:00
  • 008756f777 connector-spend: is_multiple_of in the reservation property test Meta Vens 2026-10-28 16:38:39 +01:00
  • 40908a8e14 connector-spend: drop the duplicated admission_clock Meta Vens 2026-10-28 16:38:03 +01:00
  • cbb952fccf connector-spend: rustfmt the new tests Meta Vens 2026-10-28 16:37:27 +01:00
  • c1f25cde10 connector-spend: a caller's admission window is monotonic; the ledger carries the true cost of a misreporting result; worst-case and window-ownership tests Meta Vens 2026-10-28 16:37:06 +01:00
  • 0beb1f6d02 connector-spend: settle records the true cost with an overrun marker; prune window spend; checked reservation; replay before cost bound; settle failure frees the slot; typed ceiling and window Meta Vens 2026-10-28 15:56:38 +01:00
  • b92c63149c connector-spend (B3c): reserve-then-settle spend in the replay record, cost derived on the receipt Meta Vens 2026-10-28 15:12:56 +01:00
  • 1d51e71ebf connector-reasoning-item (B3b): one opaque reasoning item per provider block; the service owns foreign state (squash of eureka-body/connector-reasoning-item bf958fc..d915f67) Meta Vens 2026-10-28 13:31:06 +01:00
  • d915f6757f connector-reasoning-item fix: cargo fmt eureka-body/connector-reasoning-item Meta Vens 2026-10-28 13:15:30 +01:00
  • 72a99b6ef3 connector-reasoning-item fix: result_size_failure is a test spelling of stand_in_failure Meta Vens 2026-10-28 13:11:43 +01:00
  • c3f503e160 connector-reasoning-item fix: Refusal publishes as one flat string enum again; a test pins the shape Meta Vens 2026-10-28 13:10:26 +01:00
  • 5762dabe79 connector-reasoning-item fix: ProviderCall holds only the filtered request; a refused backend result is a recorded typed failure Meta Vens 2026-10-28 13:10:25 +01:00
  • b115e870f0 connector-reasoning-item (B3b): provider reasoning state is one opaque transcript item; the service refuses it foreign in flight and drops it elsewhere Meta Vens 2026-10-28 12:43:25 +01:00
  • bf958fc327 connector-contract-v3 (B3a): the v3 contract as typed documents over CultNet operations (squash of eureka-body/connector-contract-v3 ec0519d..a0a6ccb) Meta Vens 2026-10-28 12:26:34 +01:00
  • a0a6ccbf0d connector-contract-v3: the decoder refuses every dialect the wire does not name; the ciphertext is published as binary eureka-body/connector-contract-v3 Meta Vens 2026-10-28 12:03:23 +01:00
  • 03bc88ae97 connector-contract-v3: pin the carriage's service id, operation and message shapes against the committed frame and the wire Meta Vens 2026-10-28 12:01:42 +01:00
  • aed07a4b71 connector-contract-v3: drop the unreachable short-string arms of the str header width Meta Vens 2026-10-28 11:38:11 +01:00
  • 2101602b8f connector-contract-v3: bracket the over-long-id refusal by the carriage frame Meta Vens 2026-10-28 11:24:21 +01:00
  • b6ad75c610 connector-contract-v3: the smallest frame has no smaller payload bound Meta Vens 2026-10-28 11:23:21 +01:00
  • face15ec16 connector-contract-v3: the payload bound a frame allows is the largest payload that fits Meta Vens 2026-10-28 11:22:45 +01:00
  • 618475b159 connector-contract-v3: the server-side carriage functions exist with the daemon feature Meta Vens 2026-10-28 11:21:52 +01:00
  • c23d91391d connector-contract-v3: the v3 wire - named MessagePack documents over a CultNet operation carriage Meta Vens 2026-10-28 11:21:11 +01:00
  • 5894632829 connector-contract-v3: the replay-seed test handles the Result of add_generic_backing_store Meta Vens 2026-10-28 11:18:02 +01:00
  • 33f092ea7f connector-contract-v3: the stand-in test reads the receipt's provider Meta Vens 2026-10-28 11:16:50 +01:00
  • e669d2b867 connector-contract-v3: handle the Result of add_generic_backing_store (CultLib a4eae90) Meta Vens 2026-10-28 11:13:28 +01:00
  • 5a4d8bd477 connector-contract-v3: delete the Responses fields and Refusal::Policy; type the request, outcome and refusals Meta Vens 2026-10-28 11:11:53 +01:00
  • 685f449ddb connector-contract-v3: delete the v2 golden test and fixtures Meta Vens 2026-10-28 11:04:44 +01:00
  • ec0519d9ff connector-kit-lift: the provider-neutral connector kit, lifted from CodexConnector fd7cec4 (squash of eureka-body/connector-kit-lift 1cf879f..ba1f7eb) Meta Vens 2026-10-28 07:12:42 +01:00
  • ba1f7eb10b serve wiring test: frames sized to the caller's payload bound, so serve starts (serve-frame-wiring-unpinned) eureka-body/connector-kit-lift Meta Vens 2026-10-28 06:45:57 +01:00
  • 2dc8d070e0 serve wiring test: complete the wide record through the service, since serve holds the replay store (serve-frame-wiring-unpinned) Meta Vens 2026-10-28 06:43:36 +01:00
  • 953eef26e4 README: Verify names the golden fixture test; the long-id refusal echoes the id (readme-stale-parity-test) Meta Vens 2026-10-28 06:40:39 +01:00