open-standards/joule-code/examples
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science b9f0019ae1
All checks were successful
joule-code conformance gate / joule-moq-relay, its own energy on a counter (macos) (pull_request) Successful in 43s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 1m30s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 12s
standards workspaces build + test / jouledesk-rs (jouledesk/jouledesk-rs, jouledesk-rs, macos) (pull_request) Successful in 1m46s
joule-code conformance gate / joule-moq-relay, every target (pull_request) Successful in 4m2s
joule-code conformance gate / Build + round-trip C1-C4 vectors (pull_request) Successful in 2m55s
joule-code conformance gate / joule-moq-ingest, every target (pull_request) Successful in 6m0s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 5m36s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 10m55s
jouledesk-github, Joule Code L3: meter a Mac with the SMC's whole-machine power where IOReport is not live
Builds jouleclaw-energy with `smc` in the two consumers that bill work with the
host meter. On macOS 27, where IOReport's CPU rails are frozen for an
unprivileged reader, their host meter becomes the SMC's whole-machine power
integral (ModelBased, domain System) instead of the load-average estimator; a
live IOReport counter still comes first.

- jouledesk-github: `detect_meter` picks the SMC; replies say "modeled by
  `apple-smc`" and seal ModelBased. Work shorter than the SMC's 2 s minimum
  window is posted as not metered, with why, as it already was for any meter.
  The model-subprocess test calibrated its stand-in to about a second of CPU,
  under that window; it now runs a second past the host meter's minimum window
  at the loop's measured rate, so it holds for every meter.
- Joule Code L3 example: `host_counter` adds the SMC between IOReport and the
  estimator. A counter's reading after a window shorter than its minimum is no
  longer taken (`read_after`): the receipt falls back to the token estimate, as
  it does with no counter. The host test burns past the counter's minimum and
  asserts the grade each meter gives; a new test covers the window rule.

Not changed: crates that enable `ioreport` only for this process's own counters
and refuse the span meter's host fallback (jouleclaw-loader-gguf, wai
quantum-meter and ops-gpu-bench) or only print it (jouleclaw-runtime's example),
where the SMC would start a sampler nothing reads; mesh-meter, whose HwMeter
does not consult a counter's minimum window, so short served requests would
carry ModelBased figures below the SMC's 2 s floor.

On an M3 Ultra Mac Studio (IOReport CPU rails frozen): jouledesk-github seals
work at ModelBased by `apple-smc` and the model-subprocess rounds read the
model's own CPU (21 J against its own 21 J count) plus the SMC's figure, posted
as an estimate; the L3 host test meters its burn at ModelBased. Tests pass on
macOS (jouledesk-github, l3-jouleclaw) and Linux (l3-jouleclaw, token estimate);
clippy is clean for jouledesk-github. l3-jouleclaw's clippy reports one
manual_char_comparison in src/llama_backend.rs, which this change does not touch
and CI does not lint.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 20:49:59 -05:00
..
l3-jouleclaw jouledesk-github, Joule Code L3: meter a Mac with the SMC's whole-machine power where IOReport is not live 2026-11-04 20:49:59 -05:00
transport-moqt Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00