fix(ci): repair latest main runtime and Inari validation failures - #329
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan includes up to 3 reviews per rolling hour; 2 remain after this review. 📜 Recent review details⏰ Context from checks skipped due to timeout. (13)
🧰 Additional context used📓 Path-based instructions (2)**/*.{ts,js,sh}📄 CodeRabbit inference engine (CLAUDE.md)
Files:
**/*📄 CodeRabbit inference engine (AGENTS.md)
Files:
🪛 ast-grep (0.45.1)src/local-runtime/artifacts.test.ts[warning] 323-323: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use. (detect-non-literal-fs-filename-typescript) [warning] 324-324: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use. (detect-non-literal-fs-filename-typescript) [warning] 342-342: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use. (detect-non-literal-fs-filename-typescript) 🔇 Additional comments (4)
📝 WalkthroughWalkthroughThe change fixes local-runtime validation issues. It adds the QMP module to the architecture allowlist, imports ChangesLocal runtime validation
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This change repairs localized CI and archive-validation behavior, with the reported test, integration, package, architecture, and security-negative checks passing; no actionable merge-blocking risk remains. Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Summary
Restore a green current-main CI baseline for the local-runtime and governance regressions in Issue #328.
Linked issue
Closes #328
Scope
Issue #328 only: repair the missing local-runtime test type import, managed QEMU archive entry verification, and the architecture boundary drift exposed while restoring the Standards job.
Included
Excluded
Implementation
The typecheck failure was an omitted type-only import. The archive verifier previously used tar -tf output and stripped a trailing slash before deciding whether an entry was a regular file, turning a directory into a manifest file. It now correlates tar -tf paths with same-order tar -tvf type entries, validates safe paths from the exact name listing, counts only regular-file entries, and rejects every non-directory/non-regular type before extraction. The existing QEMU environment option is an explicit process boundary and is added to the architecture allowlist with no runtime behavior change.
Behavioral changes
Valid managed QEMU release archives with ordinary directory entries are accepted. Symlink, hardlink, device, FIFO, socket, and other non-regular archive entries fail closed before extraction. The reconciler test compiles, and architecture validation recognizes the already-injected QEMU environment boundary.
Validation
Test layers:
pnpm testpnpm run test:integrationpnpm run test:e2e,pnpm run test:packagepnpm run verify:standardspnpm run test:coveragepnpm run test:effectivenesspnpm run verifyTest contract
Regression proof
Validation evidence
Release impact
Risks
The tar verbose type format must remain compatible with supported GNU/BSD tar implementations; pairing it with the exact name listing avoids reparsing path text from human-readable metadata. Rejecting non-regular entries may expose malformed release archives earlier, which is intentional for the trust boundary. The architecture allowlist entry documents an existing injected environment boundary and does not alter runtime behavior.
Breaking changes
No. Existing valid managed QEMU archives and persisted Runtime contracts remain compatible; malformed archives now fail closed before extraction.
Migration / compatibility
No migration. No configuration, CLI, persisted-state, or public schema contract changes.
Security impact
Positive defense-in-depth: archive symlink and special-file entries are rejected before tar extraction, and unsafe names are validated from the exact archive name listing. No credential or GitHub permission scope changes.
Review focus