Repository navigation
feat(trace): record Pi skill loads - #3759
Open
waveywaves wants to merge 3 commits into
Open
waveywaves wants to merge 3 commits into
waveywaves wants to merge 3 commits into
Conversation
Track completed filesystem reads and native user skill expansions on the selected Pi branch through the shared skill snapshot and packaging pipeline. Preserve first-use copies, changed-use warnings and push-time fallback. Implements the Pi scope of issue chainloop-dev#3714 and the skill evidence requirements of Spec 003 (chainloop-dev#3540). Live model validation remains blocked by missing OpenRouter authentication; native CLI replay and affected checks pass. Assisted-by: Vibhav's Pi Signed-off-by: Vibhav Bobade <vibhav.bobde@gmail.com>
Contributor
PR validation —
|
| Status | Policy | Material | Messages |
|---|---|---|---|
pr-min-approvals |
pr-info |
PR/MR #3759 has 0 approving reviews, 1 required. | |
| ✅ Passed | pr-description-required |
pr-info |
- |
| ✅ Passed | pr-user-story-linked |
pr-info |
- |
AI Session Checks — ⚠️ no AI session found
Missing AI Coding Sessions
This organization requires every PR to be backed by a Chainloop Trace AI coding session, and none was found for this one.
Please make sure the AI coding session evidence has been sent by the Chainloop CLI, or add the skip-ai-session label to this PR to bypass this check.
Learn more about Chainloop Trace.
Security Checks — ✅ 5 passing
✅ secret-scan
| Status | Policy | Messages |
|---|---|---|
| ✅ Passed | secrets-detection |
- |
✅ sast-scan
| Status | Policy | Messages |
|---|---|---|
| ✅ Passed | owasp-top10-2025 |
- |
| ✅ Passed | sast |
- |
| ✅ Passed | cwe-top25 |
- |
| ✅ Passed | cwe-top26-40-cusp |
- |
Scans not applied (3)
| Scan | Reason |
|---|---|
vulnerability-scan |
no manifest/lockfile changed |
github-actions-scan |
no workflow files changed |
iac-scan |
no IaC files changed |
Security context
✅ Nothing this change touches has a recorded security-fix history.
View in Chainloop ↗ · How this works ↗
Powered by Chainloop and Chainloop Trace
Contributor
There was a problem hiding this comment.
All reported issues were addressed across 4 files
Reply with feedback, questions, or to request a fix.
View guided diff | Re-trigger cubic
Assisted-by: Vibhav's Pi Signed-off-by: Vibhav Bobade <vibhav.bobde@gmail.com>
waveywaves
marked this pull request as ready for review
October 30, 2026 21:42
Decode native read arguments per tool-call block so malformed sibling calls cannot discard completed skill loads. Cover malformed unrelated arguments, invalid read paths and fractional offsets. Assisted-by: Vibhav's Pi Signed-off-by: Vibhav Bobade <vibhav.bobde@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #3714.
SkillTrackerinterface for completed filesystemreadloads and native user/skill:expansions on the selected root branch.This follows the applicable root-session requirements of the approved skill evidence spec, including R-002 through R-006 and R-008. There is no schema change.
Validation
Passed locally:
go test -race -shuffle=on -count=1 ./app/cli/internal/trace/pi ./app/cli/pkg/actiongo vetfor the affected packages.project.The fixture replay above is not a live Pi/model run.
Real Pi follow-up and Trace
A separate manual check ran Pi 1.3.0 with
openai-codex/gpt-6.1-solthrough the existing repository.pi/extensions/chainloop-trace.ts. A Trace-capable CLI built from this branch was placed first on that process'sPATH; the previously selected development CLI did not supporttrace.01a18e83-e68b-70e0-92e2-d47ad981abbb.-race -shuffle=on -count=1.trace run --local --pisuccessfully assembled this genuine session and its skill definition/package materials. The local statement references follow-up commit03f1bf5219b615af89345e720b65fdaced419137. Local evidence is unsigned and is not a control-plane attestation.Control-plane upload was attempted at the repository's configured
chainloop/chainloopdestination and returnedPermissionDeniedfor the project. The destination is unchanged. There is no uploaded session URL yet; the native transcript, first-use snapshot, and assembled local evidence are retained pending project access. The PR remains a draft.Remaining validation
The pinned OpenRouter compatibility-matrix run is still blocked: the repository key returned
401 API key expired. The successful manual OAuth check is not a pass for that matrix. An earlier E2E attempt was skipped by the oldNomatrix cell and is not counted as a pass. The row is nowPartial.CHAINLOOP_E2E_HARNESS=Pi \ CHAINLOOP_E2E_FEATURE='Skills tracking' \ make -C app/cli test-trace-e2eSupport is limited to selected-root filesystem skills and native user expansion. Child skill streams and arbitrary shell reads are not added here. Pi exposes no managed organization-root provenance, so unclassified external locations remain
unknownunder R-008.Assisted-by: Vibhav's Pi