Skip to content

feat: model visualization, Doxygen docs, blob signing, condition cleanup#6

Merged
tbitcs merged 1 commit into
mainfrom
orchestrator/tooling
Jun 2, 2026
Merged

feat: model visualization, Doxygen docs, blob signing, condition cleanup#6
tbitcs merged 1 commit into
mainfrom
orchestrator/tooling

Conversation

@tbitcs

@tbitcs tbitcs commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Model visualization, Doxygen docs, blob signing, and condition struct cleanup.

Task 1: Model Visualization — arbiterc graph

  • New CLI command: arbiterc graph <model> --out graph.md --format mermaid|dot
  • python/arbiter/emit_graph.py with emit_mermaid() and emit_dot()
  • Facts (green), rules (blue/red), actions (orange) with condition/action edges
  • Tests in tests/python/test_emit_graph.py

Task 2: Doxygen Configuration

  • Doxyfile at repo root targeting include/arbiter/
  • CI docs job: installs doxygen, generates HTML, uploads as artifact
  • docs/api/html/ added to .gitignore

Task 3: Model Signing (HMAC-SHA256)

  • sign_blob() in emit_blob.py: sets signed flag, appends 32-byte HMAC
  • ARBITER_blob_verify_signature() in arbiter_blob.c: constant-time HMAC verify
  • CONFIG_ARBITER_BLOB_SIGNING Kconfig option (depends on BLOB_LOADER)
  • Uses external arbiter_sha256() function provided by integrator
  • Tests in tests/python/test_blob_signing.py

Task 4: Remove Unused Condition Fields

  • Removed group_index and next from struct ARBITER_condition_def
  • Condition wire size: 12 → 8 bytes (saves 4 bytes per condition)
  • Updated emit_c.py, emit_blob.py, arbiter_blob.c condition parser

Test Results

  • 150 passed, 1 skipped (placeholder golden vectors)

Conversation: https://app.warp.dev/conversation/25f5afef-c932-475b-830c-b3dbdb0e6845
Run: https://oz.warp.dev/runs/019e8993-e9a7-7284-b952-d8ec4f7a206e
This PR was generated with Oz.

- Task 1: Add 'arbiterc graph' CLI command with Mermaid and DOT output
  (python/arbiter/emit_graph.py, CLI integration, tests)
- Task 2: Add Doxyfile for API docs, docs CI job, .gitignore update
- Task 3: HMAC-SHA256 blob signing (sign_blob in emit_blob.py,
  ARBITER_blob_verify_signature in arbiter_blob.c, CONFIG_ARBITER_BLOB_SIGNING)
- Task 4: Remove unused group_index/next from ARBITER_condition_def
  (saves 4 bytes per condition on nano profile), update all emitters

Co-Authored-By: Oz <oz-agent@warp.dev>
@tbitcs tbitcs merged commit 94b0942 into main Jun 2, 2026
3 of 8 checks passed
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