Skip to content

feat(conformance): settle 0B Bucket C — capability conventions + WaitReady key set - #39

Merged
CameronBrooks11 merged 1 commit into
mainfrom
feat/0b-bucket-c-capability-conventions
Jun 22, 2026
Merged

CameronBrooks11 merged 1 commit into
mainfrom
feat/0b-bucket-c-capability-conventions

Conversation

@CameronBrooks11

Copy link
Copy Markdown
Member

Closes the final Phase 0B item (#27 Bucket C), completing Wave 0 of the conformance epic (#25).

What

Two capability-surface conventions + the WaitReady diagnostics key set — documented in the executable profile and asserted in the waivable executable-profile suite (conventions, not core ADPP), per the locked decisions (audit §6.7/§6.8/§6.1).

  • checks.py — assert_signal_ids_snake_case (signal_id matches ^[a-z][a-z0-9_]*$) and assert_function_ids_per_type_from_one (each device's function_ids are the contiguous set {1..N}).
  • test_executable_profile.py — test_signal_ids_snake_case + test_function_ids_per_type_from_one, executable_profile-marked so a non-compliant provider can waive them with an issue link.
  • test_selftest.py — hermetic validator self-tests (good + bad cases).
  • anolis-executable-profile-v1.md — settle the WaitReady key set (init_time_ms required; ready/device_count/provider_impl recommended) and add a Capability conventions §4.
  • ADPP-CONFORMANCE.md — fold both checks into the executable-profile summary; retire the "not yet covered" note.

Non-breaking

The new assertions ship in a future release; all three providers pin v1.4.0, so their lanes are unaffected now. Validated against the released binaries with the branch harness:

Provider snake_case per-type fn_id
bread v0.2.11 ✅ ✅
sim v0.2.5 ✅ ✅ (mock config exposes only the compliant tempctl)
ezo v0.2.7 ❌ ph.value ❌ 1001–1003

34 hermetic self-tests pass; full bread run green (35 passed, 1 xfailed = its init_time_ms waiver).

Follow-ups (Wave 3, separate issues)

  • ezo: dotted signal_ids → snake_case; global function_ids → per-type from 1 (its future waiver reason / fix).
  • sim: latent motorctl function_id=10 → 1 (not currently exposed by the mock config).
  • Releasing a harness version with these assertions should be coordinated with those provider fixes/waivers.

…Ready key set

Close out the last Phase 0B item (#27 Bucket C): the two capability-surface
conventions and the WaitReady diagnostics key set, documented in the executable
profile and asserted in the (waivable) executable-profile suite — conventions,
not core ADPP.

- checks.py: assert_signal_ids_snake_case (signal_id ^[a-z][a-z0-9_]*$) and
  assert_function_ids_per_type_from_one (per-device function_ids are {1..N}).
- test_executable_profile.py: test_signal_ids_snake_case +
  test_function_ids_per_type_from_one (executable_profile-marked -> waivable).
- test_selftest.py: hermetic validator self-tests (good + bad cases).
- anolis-executable-profile-v1.md: settle the WaitReady key set
  (init_time_ms required; ready/device_count/provider_impl recommended) and add a
  Capability conventions section.
- ADPP-CONFORMANCE.md: fold the two checks into the executable-profile summary;
  retire the 'not yet covered' note.

Validated against the released binaries: bread passes both, ezo fails both
(ph.value; function_ids 1001-1003), sim passes (its mock config exposes only the
compliant tempctl). 34 hermetic self-tests pass.

Closes #27
@github-actions

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow CI / lint (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedJun 22, 2026, 3:06 PM

@CameronBrooks11
CameronBrooks11 enabled auto-merge (squash) June 22, 2026 15:06
@CameronBrooks11
CameronBrooks11 merged commit 2666aaa into main Jun 22, 2026
7 checks passed
CameronBrooks11 added a commit that referenced this pull request Jun 23, 2026
Bucket C capability conventions + WaitReady key set (#39) and the gated
default-signal-set / call-results assertions + semantics clarifications (#42).
No proto changes from v1.4.0 — conformance-harness and spec only; providers
upgrade by bumping the harness pin.
@CameronBrooks11
CameronBrooks11 deleted the feat/0b-bucket-c-capability-conventions branch August 3, 2026 15:51
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