Feature/#244#253
Conversation
Implement the first Pi runtime adapter crate as a core-port implementation while keeping completion authority in the kernel and TS/Pi surfaces as facades. Constraint: Issue #244 requires TDD, prompt projection, normalized runtime output, artifact inbox integration, and no runtime completion authority. Rejected: Extending core or TS surfaces to decide completion | completion must stay with core kernel services. Confidence: high Scope-risk: narrow Directive: Keep future Pi presentation and TypeScript shims outside ilchul-core and preserve RuntimeOutput as non-authoritative evidence-producing data. Tested: cargo fmt --all -- --check; cargo test -p ilchul-runtime-pi; cargo test --workspace; cargo clippy --workspace --all-targets -- -D warnings; npm test Not-tested: Live Pi extension runtime wiring beyond the Rust adapter facade boundary. Co-authored-by: OmX <omx@oh-my-codex.dev>
Review round 1Result: No blocking findings from this review. I used the local review flow ( Real Result from verification:
Concrete evidence checked:
Non-blocking note: |
CODE REVIEW REPORTRecommendation: REQUEST CHANGES Real Result from verification:
CRITICAL (0)(none) HIGH (2)
MEDIUM (1)
ARCHITECTURE WATCHLIST / BLOCKER
SYNTHESIS
The Rust verification is strong, and the core direction is good, but I would not treat this merge-ready until the artifact ref/digest/sealing boundary is fixed. |
Keep Pi-staged artifacts adapter-scoped by rejecting ambiguous names, disambiguating locations with artifact ids, and using stable sha256 digests while preserving core-owned completion and sealing authority. Extend prompt projection so realistic block-shaped contracts reach Pi without silent defaults.\n\nConstraint: Follow-up to PR #253 review round 1 blockers for issue #244.\nRejected: Keep DefaultHasher and rewritten file names | preserved ambiguous, canonical-looking evidence refs.\nConfidence: high\nScope-risk: narrow\nDirective: Do not treat pi-inbox refs as sealed canonical evidence until the artifact-store boundary records them.\nTested: cargo fmt --all -- --check; cargo test -p ilchul-runtime-pi; cargo test --workspace; cargo clippy --workspace --all-targets -- -D warnings; npm test via bundled Node/npm shim; git diff --check origin/dev...HEAD.\nNot-tested: Live Pi extension runtime wiring; npm executable directly on PATH in this runner.
|
Implemented the PR #253 review-round follow-up for issue #244. Fixes made:
Verification run:
Commit pushed: |
CODE REVIEW REPORTRecommendation: REQUEST CHANGES I ran the requested Real Result from verification:
CRITICAL (0)(none) HIGH (2)
MEDIUM (1)
ARCHITECTURE WATCHLIST / BLOCKER
Positive evidence checked:
SYNTHESIS
The implementation is close, and verification is green, but I would not treat this merge-ready until |
Constraint: PR #253 round-2 review required every pi-inbox URI component to be unambiguous before staged refs are exposed. Rejected: Percent-encoding raw core ids | rejecting unsafe adapter URI segments keeps the advertised pi-inbox shape simple and fail-closed. Confidence: high Scope-risk: narrow Directive: Keep Pi-staged refs adapter-scoped and non-authoritative until the artifact-store sealing boundary records bytes. Tested: cargo fmt --all -- --check; cargo test -p ilchul-runtime-pi; cargo test --workspace; cargo clippy --workspace --all-targets -- -D warnings; npm test via bundled Node/npm shim; git diff --check origin/dev...HEAD Not-tested: Live Pi extension runtime wiring remains outside this adapter-boundary slice.
|
Implemented the PR #253 review-round follow-up for issue #244. Fixes made:
Verification run:
Commit pushed: |
|
Implemented the PR #253 round-2 follow-up for issue #244. Fixes made:
Verification run:
Commit pushed: |
|
Implemented the PR #253 review-round 2 follow-up for issue #244. Fixes made:
Verification run:
Commit pushed: |
CODE REVIEW REPORTRecommendation: REQUEST CHANGES I ran the requested Real Result from verification:
CRITICAL (0)(none) HIGH (2)
MEDIUM (1)
ARCHITECTURE WATCHLIST / BLOCKER
Positive evidence checked:
SYNTHESIS
The implementation is close and the verification suite is green, but I would not treat this merge-ready until the full contract projection and staged artifact type boundary are tightened. |
Preserve the immutable RunContract snapshot in Pi prompts while keeping derived sections for Pi-facing guidance. Keep Pi artifact material in an adapter-owned staged DTO with bytes, URI, and digest instead of presenting pre-sealed core ArtifactRefs.\n\nConstraint: PR #253 round-3 review required full contract projection and a type-safe staged-artifact boundary before merge readiness.\nRejected: Emitting pi-inbox ArtifactRef values directly | That blurred adapter-staged material with canonical artifact-store evidence.\nRejected: Trimming session prefixes before validation | That silently normalized ambiguous staged URI segments.\nConfidence: high\nScope-risk: narrow\nDirective: Do not convert PiStagedArtifact to ArtifactRef outside an explicit artifact-store sealing/canonicalization boundary.\nTested: cargo fmt --all -- --check; cargo test -p ilchul-runtime-pi; cargo test --workspace; cargo clippy --workspace --all-targets -- -D warnings; npm test; git diff --check origin/dev...HEAD\nNot-tested: Live Pi extension runtime wiring, intentionally outside this adapter-boundary slice.
|
Implemented the PR #253 round-3 follow-up for issue #244. Fixes made:
Verification run:
Commit pushed: |
|
Verdict: APPROVE Short reason: The round-3 follow-up resolves the prior merge blockers. The Pi adapter now preserves the full authoritative Real Result from actual verification:
Concrete evidence checked:
No remaining merge-blocking issues found in this final pass. |
Summary
ilchul-runtime-pias the first PiRuntimeAdapterboundary.Source Contract Snapshotplus mission, boundary, evidence, verification, and handoff sections, including multiline Markdown/block section parsing.RuntimeOutput, turn observations, adapter-scopedPiStagedArtifactDTOs withpi-inbox://<session>/<artifact-id>/<file>URIs, and evidence candidates.sha256:content digests while leavingArtifactRefcreation, artifact sealing, and canonical state mutation outside the Pi runtime boundary.README.md.Automation Assumption
Non-interactive implementation proceeded with the conservative assumption that the first Pi adapter boundary should be an in-process Rust facade crate over the existing core port, without live Pi extension runtime wiring or canonical state mutation. Follow-up review fixes keep Pi-staged material adapter-scoped and non-authoritative until a core artifact-store/sealing boundary records it.
Verification
cargo fmt --all -- --checkcargo test -p ilchul-runtime-picargo test --workspacecargo clippy --workspace --all-targets -- -D warningsnpm testgit diff --check origin/dev...HEADCloses #244