Repository navigation
feat: add pinned eCAD hardware authorization foundation - #158
Conversation
| nofollow = getattr(os, "O_NOFOLLOW", 0) | ||
| try: | ||
| descriptors.append( | ||
| os.open(str(root), os.O_RDONLY | os.O_DIRECTORY | nofollow) |
| os.open( | ||
| part, | ||
| os.O_RDONLY | os.O_DIRECTORY | nofollow, | ||
| dir_fd=descriptors[-1], | ||
| ) |
| file_descriptor = os.open( | ||
| parts[-1], | ||
| os.O_RDONLY | getattr(os, "O_BINARY", 0) | nofollow, | ||
| dir_fd=descriptors[-1], | ||
| ) |
Code review — findingsReviewed the pinned eCAD hardware-authorization foundation. The security design is sound:
Concerns:
Not merging per org policy (comment-only reviews). No competing implementation planned; the design direction here is good. |
|
@Aswin-V thanks for the review. On 2 (validation baseline), I merged current The tree is green now, so the 10 pre-existing failures noted in the description are gone. The
The red checks on the previous head came from the old base too. mypy failed on all six Linux and macOS jobs. On Windows, yamllint failed with On 3 (bundle provenance): eCAD-Hardware-Products#30 merged on 2026-09-23, so the clean-bundle reference is no longer a moving target. On 1 (splitting |
|
Re-verified on WSL today against master (PR head already contains master): |
Summary
Validation
python3 -m pytest tests/unit/test_hardware_validation_gate.py -q— 34 passed.ninjapackage.PackageRecipelacksto_dict()in index-sync tests.Scope boundary
This PR delivers the verifier and authorization foundation. Parent issue #156 remains open for wiring every public generator, explicit BOM/controller role mapping, atomic output publication, and downstream generation receipts.
Related work
Fixes #157
Part of #156