open-standards/eoc/eoc-rs/crates
Repository files (latest commit first)
Filename Latest commit message Latest commit date
David Charlot b739eb26ef energy: the hardware oracle still encoded the rule the crates no longer use
Each of the four crates' `nvml_hardware` tests carries its own oracle: the
plausibility rule rewritten from the rule itself, in f64, from `nvidia-smi`
rather than the crate's own sampling, so that `energy-hardware.yml` on
jetson-hub checks the crate against an independent implementation and not
against itself. That only holds while the oracle encodes the rule the crate
implements, and all four still had the old conflation:

  if rate_w > 1.5 * c || draws_w.iter().any(|d| *d > 1.5 * c) { return false }

jcp-energy's included — #185 fixed that crate's implementation and left its
oracle behind, so since then the two have disagreed about what a draw reading
past the board's own limit means. On jetson-hub's RTX 4050 the disagreement
is masked: that counter runs persistently at 4-30x the board's draw, so the
implementation reaches `Implausible` by the rate bound and the oracle reaches
it by the broken reading, and they agree on the verdict for different
reasons. It would surface on a board whose counter is sane and whose
telemetry spikes — the implementation would judge on the surviving reading
and say `Live`, the oracle would say `Implausible`, and the test asserts they
agree.

So the oracles now drop a draw reading past the limit, and only that reading,
and answer `Unjudgeable` when nothing usable is left — with a `Verdict`
variant for it and an arm in the mapping each test makes against the crate's
own status. The run's verdict is the most severe of its GPUs', as the crates'
now is, so a definite overrun outranks an indeterminate.

These tests are all `#![cfg(target_os = "linux")]`, two of them also behind
`--features nvml` and one behind `--features cuda`, so none of them compiles
in a default build on this machine; checked for aarch64-unknown-linux-gnu
with each crate's own feature.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-09 08:38:04 -04:00
..
eoc eoc: the in-process burn test's backend is built only on macOS, where its one test runs 2026-09-30 22:41:13 -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-cascade: a cache hit claims no measurement, and a total is measured only if every microjoule was read 2026-09-30 20:17:08 -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-cascade: a cache hit claims no measurement, and a total is measured only if every microjoule was read 2026-09-30 20:17:08 -04:00
eoc-core eoc-meter: the GPU counter is never the cascade's counter, and one past its board is Implausible 2026-10-01 10:18:29 -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 energy: the hardware oracle still encoded the rule the crates no longer use 2026-10-09 08:38:04 -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