Skip to content

fix(os-rv64): keep release gates source-only honest#7893

Draft
NubsCarson wants to merge 4 commits into
developfrom
codex/riscv-next-20260522
Draft

fix(os-rv64): keep release gates source-only honest#7893
NubsCarson wants to merge 4 commits into
developfrom
codex/riscv-next-20260522

Conversation

@NubsCarson
Copy link
Copy Markdown
Member

@NubsCarson NubsCarson commented May 22, 2026

Summary

  • wire the unified packages/os/linux/elizaos RV64 release-check targets to the checked-in Python manifest gate instead of the deleted scripts/release-check.sh
  • keep the checked-in RV64 release manifest source-only honest: planned artifact metadata with missing evidence rows until a build archives the ISO plus qemu/GRUB/agent transcripts
  • make static smoke catch stale release-check target wiring without requiring a local ISO or QEMU run
  • make the ISO build fail closed if manifest.json.template is missing, so it cannot emit an ISO/checksum without release metadata
  • keep the prototype dashboard conservative for source-only checkouts while still allowing generated evidence to satisfy the validator when present
  • merge latest develop (fa83ddee6f) so this PR includes the current chip/RISC-V test-suite fixes and Shaw's newest chip evidence scaffolding

Why

After the merged RISC-V cleanup, the active Linux tree is packages/os/linux/elizaos, not the removed elizaos-debian-riscv64 variant. The source tree still had two release-gate drift points: the Makefile called a deleted helper, and the committed RV64 manifest claimed collected qemu/GRUB/agent evidence even though the transcript and ISO are not archived in the repo. That made source-only validation either miss the stale helper path or fail for the wrong reason.

This PR keeps the claim boundary explicit: the checked-in manifest is a planned skeleton, default release-check is informational/BLOCKED, strict release-check remains nonzero until real release evidence is present, and qemu-virt summary evidence is not treated as promoted release evidence without the matching transcript/artifact.

Validation

Local validation after merging latest origin/develop on 2026-05-23:

  • git diff --check: pass
  • bash -n packages/os/linux/elizaos/build.sh: pass
  • ELIZAOS_STATIC_SOURCE_ONLY=1 ./scripts/static-smoke.sh from packages/os/linux/elizaos: pass
  • make -C packages/os/linux/elizaos release-check ARCH=riscv64: exits 0 with STATUS: BLOCKED
  • make -C packages/os/linux/elizaos release-check-strict ARCH=riscv64: exits nonzero with STATUS: BLOCKED
  • make -C packages/os/linux/elizaos release-check ARCH=amd64: refuses the RISC-V-specific gate
  • make -C packages/chip prototype-status-dashboard-check: pass
  • make -C packages/chip chip-os-objective-evidence-matrix: blocked as expected, requirements=43 proven=3 blocked=5 missing=35
  • make -C packages/chip chip-os-report-freshness-test: pass
  • python3 packages/chip/scripts/test_check_prototype_status_dashboard.py: pass
  • python3 packages/chip/scripts/test_os_rv64_chip_boot_contract.py: pass
  • python3 packages/chip/scripts/test_chip_os_report_freshness.py: pass
  • make -C packages/os/linux/elizaos lint: pass

Local environment note: this workstation does not currently have Python jsonschema installed, so the release manifest checker reports that as an additional non-strict BLOCKED line locally. The gate still behaves correctly: default release-check is informational, strict release-check fails closed.

Not Claimed

  • no E1/chip Linux boot claim
  • no promoted RV64 release artifact claim
  • no qemu-virt evidence substitution for generated Eliza AP/chip-emulator evidence
  • no hardware, silicon, phone, AOSP, or performance readiness claim

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 22, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8694db77-d275-4b63-8f33-e9715a94d5a7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/riscv-next-20260522

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added the Docs label May 22, 2026
NubsCarson and others added 2 commits May 23, 2026 07:01
Scope is intentionally limited to packages/chip CI/evidence hygiene.

- formatter/type/shellcheck cleanup for current chip gate surfaces
- Yosys synth now builds the required secure boot ROM input after make clean
- IOMMU stub-audit allowlist entries are explicit evidence-gated
  non-production boundaries (per docs/evidence/memory/iommu-evidence-gate.yaml),
  not completion claims
- board/package gate uses repo-local mechanical intake-template evidence and
  accepts current public-source observation records via a date-anchored regex
- e1-phone-board-package-check validators caught up to current evidence:
  - check_display_camera_acceptance: include display_alternate_screen_branch_release_gate
  - check_routed_layout_readiness_binding / check_first_article_route_execution_order /
    check_post_route_validation_binding: add supplier_rfq_response_normalization to
    expected_upstream (matches binding YAMLs already citing it)
  - check_end_to_end_readiness: pin off_the_shelf_wireless_modules to the stronger
    wireless-module-release-execution.yaml anchor
- yamllint indentation disabled only for the chip tree's mixed
  generated/KiCad/PyYAML artifacts; schema/content validators still
  enforce semantics
- fail-closed claim boundaries preserved; no hardware/silicon/phone/
  performance readiness claims added

Local proof (Docker eliza-soc-tools):
  make lint typecheck
  make clean synth
  make e1-phone-board-package-check
  make clean ci-fast (ci-fast complete)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@NubsCarson
Copy link
Copy Markdown
Member Author

Follow-up pushed to unblock the e1-chip lane. Scope is intentionally limited to packages/chip CI/evidence hygiene.

What changed (76b9dbe710)

  • formatter/type/shellcheck cleanup for current chip gate surfaces
  • Yosys synth now builds the required secure boot ROM input after make clean
  • IOMMU stub-audit entries are explicit evidence-gated non-production boundaries (per docs/evidence/memory/iommu-evidence-gate.yaml), not completion claims
  • e1-phone-board-package-check validators caught up to current evidence:
    • check_display_camera_acceptance accepts the new display_alternate_screen_branch_release_gate (status remains blocked_…_evidence; alternates are explicitly shortlist-only)
    • check_routed_layout_readiness_binding, check_first_article_route_execution_order, check_post_route_validation_binding add supplier_rfq_response_normalization to expected_upstream (matches the binding YAMLs that already cite it; six other validators already track it the same way)
    • check_end_to_end_readiness pins off_the_shelf_wireless_modules to the stronger wireless-module-release-execution.yaml anchor
  • board/package gate accepts current public-source observation records via a date-anchored regex while keeping URL/observed-fields/blocker checks intact
  • packages/chip/.yamllint.yaml indentation is disabled only for the chip tree’s mixed generated/KiCad/PyYAML artifacts; schema/content validators still enforce semantics

No silicon/hardware/phone/performance/production readiness claims added. Fail-closed claim boundaries preserved (3,179 raise SystemExit lines before/after; sampled discipline strings preserved 1:1).

Local proof (Docker eliza-soc-tools)

  • make lint typecheck
  • make clean synth
  • make e1-phone-board-package-check
  • make clean ci-fastci-fast complete

Known CI context

  • Server Tests is currently failing on upstream develop with the same planner-loop-user-facing-text assertion; this PR does not touch packages/core.
  • All Tests Passed is the aggregate of Server Tests.
  • docker-regression / e1-chip is the lane this commit is intended to fix.

…ives

Follow-up hygiene wins on top of 76b9dbe.

packages/chip/.yamllint.yaml
- Replace wholesale 'indentation: disable' with a per-path override.
- Indentation is now enforced for hand-authored YAML in the chip tree.
- The override list covers exactly the 11 generator-owned files whose
  PyYAML safe_dump output uses sequence indentation yamllint flags:
  board/kicad/e1-phone/production/ subtree, three dated audit YAMLs
  under board/kicad/e1-phone/, and docs/evidence/pd/e1-soc-pd-input-contract.yaml.
- Verified by injecting a deliberate mis-indent into a hand-authored
  file: yamllint catches it; reverting restores a clean exit.

packages/chip/scripts/check_e1_phone_board_package.py
- check_end_to_end_readiness: pin the two remaining objectives to their
  authoritative artifacts.
  - component_height_and_enclosure_step → enclosure-fit-execution-package.yaml
  - supplier_footprints_pinouts_and_3d_models → supplier-to-kicad-evidence-map.yaml
- Both anchors are real v1-schema, fail-closed artifacts with forbidden_claims.
- All 9 end-to-end objectives are now pinned (was 7 of 9).

Verified:
  docker run ... make e1-phone-board-package-check  (green)
  docker run ... make clean ci-fast                 (ci-fast complete)
  yamllint .                                        (exit 0)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant