open-standards/eoc/eoc-rs/crates
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science ae673eb899
All checks were successful
energy meters on real hardware / RAPL and NVML on jetson-hub (pull_request) Successful in 40s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 2m24s
standards workspaces build + test / aac-rs (pull_request) Successful in 2m52s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 1m26s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 59s
standards workspaces build + test / map-rs (pull_request) Successful in 1m0s
standards workspaces build + test / mesh-rs (pull_request) Successful in 56s
standards workspaces build + test / openpay (pull_request) Successful in 2m38s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 54s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 4m41s
lockfiles / every Cargo.lock is current (pull_request) Successful in 42s
spec citations resolve / Code cites no section its SPEC lacks (pull_request) Successful in 3s
standards workspaces build + test / arl-rs (pull_request) Successful in 1m10s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m51s
standards workspaces build + test / eoc-rs (pull_request) Successful in 2m13s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 1m13s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 1m14s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m28s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m23s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m9s
tests in CI / every test file is run by a job or listed with its reason (pull_request) Successful in 4s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 4m0s
eoc-meter: a GPU rise the oracle saw is not one the probe must have seen
`the_production_probe_hands_the_rule_what_the_oracle_reads` failed once on an
otherwise green tree -- the only failure of that job across 309 commits:

  ("GPU Energy", 0) moved 1508467856154491 -> 1508467860032551 across the
  oracle's reads, but every one of the 20 samples the production probe took
  read [1508467856154491]

The assertion behind it does not hold. The oracle's two reads *bracket* the
probe's samples, so a rise it saw can fall entirely outside the probe's own
window. GPU energy is activity-driven, not a clock: it rises only while the GPU
works, so on a shared host another process's short burst lands between the
oracle's first read and the probe's first sample as readily as inside it. The
observed delta is about one tick's worth. One value is therefore no evidence of
a sampler that is not sampling.

The same block already reasons this way one branch over -- a rail that held
across the bracket is reported with "freshness is NOT asserted on it" -- and
sandbox-meter's equivalent prints its GPU-hold case rather than asserting it.
This applies that reasoning to the case where the rail moved: the count of
distinct values is reported either way, and nothing is asserted from it.

Every other assertion is untouched, including the one that each handed sample
lies within the oracle's bracket.

What this gives up: a sampler that cached one reading and handed it back would
no longer be caught here. The liveness tests are what cover a rail that does
not advance (`the_liveness_probe_never_reports_a_frozen_rail_as_live`,
`the_ioreport_meter_is_never_available_on_a_frozen_cpu_rail`). Restoring a
sound version of this check means driving GPU work inside the probe's own
window, so a rise is guaranteed to be there to see; that is a larger change
than this one.

Verified on the IOReport host: 17 of 17 `macos_ioreport` tests and all 80
eoc-meter lib tests pass. That run took the held branch, so it exercises the
paths around this change rather than the rare case itself, which by
construction cannot be forced.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-14 02:45:40 -04:00
..
eoc eoc: a hit prints its estimate and the calibration it came from 2026-10-13 02:22:58 -04:00
eoc-agent eoc-agent: a local model's measured step is a measured span 2026-10-01 01:27:42 -04:00
eoc-cache eoc docs: what a resolve is charged, with the measured figures; the example prints the unmetered baseline 2026-10-13 02:22:58 -04:00
eoc-carbon eoc-carbon: an account and an SCI score are measured only where every part was, and a run with no correct answer has no score 2026-09-30 21:07:25 -04:00
eoc-cascade eoc docs: what a resolve is charged, with the measured figures; the example prints the unmetered baseline 2026-10-13 02:22:58 -04:00
eoc-core eoc docs: what a resolve is charged, with the measured figures; the example prints the unmetered baseline 2026-10-13 02:22:58 -04:00
eoc-distributed ingest wave A4: 3 crates · smart-byte-atproto + op-openbanking + eoc-distributed 2026-05-24 12:22:09 -04:00
eoc-embeddings Repo-wide toolchain refresh + jouleclaw policy/sandbox updates 2026-06-07 17:04:45 -04:00
eoc-eval eoc-carbon: an SCI score is only as measured as the joules it was computed from 2026-09-30 20:17:24 -04:00
eoc-graph Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
eoc-kv Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
eoc-local eoc: the CLI's cascade is metered by this process's own counter, because all of its stages run in-process 2026-09-30 22:39:01 -04:00
eoc-memory ingest wave F: 3 crates · op-crypto-extra + smart-byte-acdc + eoc-memory 2026-05-24 17:28:24 -04:00
eoc-meter eoc-meter: a GPU rise the oracle saw is not one the probe must have seen 2026-10-14 02:45:40 -04:00
eoc-multimodal Repo-wide toolchain refresh + jouleclaw policy/sandbox updates 2026-06-07 17:04:45 -04:00
eoc-neural Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
eoc-observability ingest wave C: 3 crates · op-statements + smart-byte-activitypub + eoc-observability 2026-05-24 13:51:09 -04:00
eoc-quantize ingest wave D: 3 crates · op-fraud-graph + smart-byte-ilp + eoc-quantize 2026-05-24 16:10:10 -04:00
eoc-rag ingest wave A3: 3 crates · op-ewallets-asia + smart-byte-zk + eoc-rag 2026-05-24 12:08:49 -04:00
eoc-rerank Repo-wide toolchain refresh + jouleclaw policy/sandbox updates 2026-06-07 17:04:45 -04:00
eoc-route-learned eoc-route-learned: unbreak the build — rand_distr 0.4 pulled rand 0.8 2026-07-20 12:46:50 -04:00
eoc-safety ingest wave E: 3 crates · op-bin + smart-byte-tendermint + eoc-safety 2026-05-24 16:52:07 -04:00
eoc-spec-decode Repo-wide toolchain refresh + jouleclaw policy/sandbox updates 2026-06-07 17:04:45 -04:00
eoc-streaming eoc-streaming: a stream nothing metered has no energy figure, never 0 µJ 2026-09-30 20:17:36 -04:00
eoc-tools eoc: pin rand off 0.10.2, which does not compile 2026-08-27 13:32:56 -04:00
eoc-vendor-api Repo-wide toolchain refresh + jouleclaw policy/sandbox updates 2026-06-07 17:04:45 -04:00
eoc-wasm Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00