Repository navigation
fix(cache): migrate to canonical dockuri Procache - #311
Conversation
7ca251a to
26c5c6c
Compare
26c5c6c to
96c8422
Compare
There was a problem hiding this comment.
Validator approval after policy checks for exact head 96c842244f5823874aebea77dad38525b812dfd6.
Ticket: ticket-251
Correlation ID: local-semcod-planfile-pr-311-ticket-251
Model: openai/cursor-auto
Reviewed diff chunks: 1
Advisory LLM verdict: APPROVE
Advisory summary: Reviewed all 1 diff chunk(s). The change cleanly replaces the retired Procache repository and revision in both the manifest and matching lockfile entries while preserving the existing distribution name and dependency set. Ticket metadata accurately records the scoped migration and protected publication requirements.
Advisory findings: none
The LLM output above is advisory and was not used as the approval trust root.
Semantic review prerequisite: not_required; policy 676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7.
Actual PR impact radar
Exact range: 959224a9cc95fe0a73a0d26b285c6b17b7c55561...96c842244f5823874aebea77dad38525b812dfd6
Change digest: 37dcf59ff59fa7345e45852af7b5fd38deca22fbcc9c1d9d2cf031811fac2f11
Score: 80/100 (L), estimated 94 min, split recommended: true
Affected services/components: repository-wide/unclassified
Machine-readable radar JSONL and SVG
{"actual_change":{"additions":105,"base_sha":"959224a9cc95fe0a73a0d26b285c6b17b7c55561","binary_files":0,"categories":{"code":1,"configuration":2,"docs":2},"change_digest":"37dcf59ff59fa7345e45852af7b5fd38deca22fbcc9c1d9d2cf031811fac2f11","comparison":"959224a9cc95fe0a73a0d26b285c6b17b7c55561...96c842244f5823874aebea77dad38525b812dfd6","deletions":3,"file_count":5,"files":["project/TICKETS.md","project/ticket-251/README.md","project/ticket-251/intent.json","pyproject.toml","uv.lock"],"head_sha":"96c842244f5823874aebea77dad38525b812dfd6","service_count":0,"services":[]},"assessment_mode":"observed-pr","axes":{"coupling":5,"delivery":5,"scope":5,"uncertainty":3,"validation":2},"complexity":"L","confidence":0.9,"diagnostics":["RADAR-ACCEPTANCE-MISSING","RADAR-BUDGET-EXCEEDED"],"estimate":{"budget_minutes":30,"minutes":94,"within_budget":false},"impact":{"components":["3.10","dockuri","github.com","product","project","repository-root","subactor"],"files":["3.10/3.11/3.13","dockuri/procache","github.com/subactor/onedev-agent/pull/787","product/test","project/TICKETS.md","project/ticket-251/README.md","project/ticket-251/intent.json","pyproject.toml","subactor/procache","uv.lock"],"public_interfaces":[],"runtime_dependencies":1},"schema":"subactor.ticket-radar/v1","score":80,"split":{"parts":[{"estimated_minutes":12,"name":"Implement 3.10","scope":["3.10"]},{"estimated_minutes":12,"name":"Implement dockuri","scope":["dockuri"]},{"estimated_minutes":12,"name":"Implement github.com","scope":["github.com"]},{"estimated_minutes":12,"name":"Implement product","scope":["product"]},{"estimated_minutes":12,"name":"Implement project","scope":["project"]},{"estimated_minutes":15,"name":"Validate and project to trackers","scope":["tests","planfile","github/gitlab/jira projections"]}],"reason":"estimated_minutes_exceed_budget","recommended":true},"standards":[{"id":"wellmanifest/dsl","revision":"6c60fc4e0dd1f1bb74f46a7745e28019908d1203","version":"0.1.0-dev"},{"id":"wellmanifest/ticket-lifecycle","revision":"5bf581907a87b46a13a73e6c033d3abe4d9a306f","version":"0.1.0-dev"},{"id":"wellmanifest/git-lifecycle","revision":"7d77d4b7af57e69bc75c3a0290b3a4805c5c4438","version":"0.2.0-dev"},{"id":"wellmanifest/logs","revision":"48c284ef7a069055c0bcb6b900147ce5e65f8b43","version":"0.3.0"}],"ticket_ref":"ticket-251"}<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128" role="img"><title>ticket-251: fix(cache): migrate to canonical dockuri Procache</title><rect width="128" height="128" rx="12" fill="#f8fafc"/><g stroke-width="1"><polygon points="64,55 72,61 69,71 59,71 56,61" fill="none" stroke="#d7dde5"/><polygon points="64,47 80,59 74,78 54,78 48,59" fill="none" stroke="#d7dde5"/><polygon points="64,38 89,56 79,85 49,85 39,56" fill="none" stroke="#d7dde5"/><polygon points="64,30 97,53 84,92 44,92 31,53" fill="none" stroke="#d7dde5"/><polygon points="64,21 105,51 89,99 39,99 23,51" fill="none" stroke="#d7dde5"/><line x1="64" y1="64" x2="64" y2="21" stroke="#aab4c0"/><line x1="64" y1="64" x2="105" y2="51" stroke="#aab4c0"/><line x1="64" y1="64" x2="89" y2="99" stroke="#aab4c0"/><line x1="64" y1="64" x2="39" y2="99" stroke="#aab4c0"/><line x1="64" y1="64" x2="23" y2="51" stroke="#aab4c0"/></g><polygon points="64,21 105,51 79,85 54,78 23,51" fill="#fb923c" fill-opacity="0.45" stroke="#c2410c" stroke-width="2"/><circle cx="64" cy="64" r="3" fill="#c2410c"/><g font-family="sans-serif" font-size="7" fill="#334155"><text x="64" y="11" text-anchor="middle">SCO</text><text x="114" y="48" text-anchor="middle">COU</text><text x="95" y="107" text-anchor="middle">UNC</text><text x="33" y="107" text-anchor="middle">VAL</text><text x="14" y="48" text-anchor="middle">DEL</text></g><text x="64" y="124" text-anchor="middle" font-family="sans-serif" font-size="8" fill="#0f172a">L · 94m</text></svg>DECISION D-251-6916
TICKET ticket-251
HEAD_SHA 96c842244f5823874aebea77dad38525b812dfd6
CORRELATION_ID local-semcod-planfile-pr-311-ticket-251
ACTOR agent:ifuri-validator-agent[bot]
APPLIED_RULE P-CORE-015
INPUT author_login = "tom-sapletta-com"
INPUT observed_checks = ["notify=PASS","test (3.13)=PASS","test (3.10)=PASS","governance / enforce=PASS","ci-loop=PASS","governance / remote lifecycle=PASS","freshness=PASS","onedev/local-verify=PASS"]
INPUT required_checks = ["ci-loop","notify","freshness","governance / remote lifecycle","governance / enforce","test (3.10)","test (3.13)","onedev/local-verify"]
INPUT required_checks_source = "protected registry + GitHub applied rules (env/request)"
INPUT reviewer_login = "ifuri-validator-agent[bot]"
INPUT semantic_review_assessment = {"schema":"subactor.validator/semantic-review-assessment/v1","subject":{"repository":"semcod/planfile","pull_request":311,"head_sha":"96c842244f5823874aebea77dad38525b812dfd6","base_sha":"959224a9cc95fe0a73a0d26b285c6b17b7c55561","diff_sha256":"c37dd3a18f87c178014b914bb8a117f0c383f31cb3c5c50809bb4038bd03db5b"},"policy":{"policy_schema":"subactor.validator/semantic-review-policy/v1","policy_version":1,"policy_sha256":"676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7","required":false,"critical_paths":[],"observed_paths":["project/TICKETS.md","project/ticket-251/README.md","project/ticket-251/intent.json","pyproject.toml","uv.lock"]},"grounding":"full-diff-not-per-finding-proof","execution_authority":false,"status":"not_required","reason":null,"review_sha256":null,"unresolved":[]}
INPUT superseded_checks = []
INPUT ticket_radar_receipt = {"schema":"subactor.ticket-radar/v1","base_sha":"959224a9cc95fe0a73a0d26b285c6b17b7c55561","head_sha":"96c842244f5823874aebea77dad38525b812dfd6","change_digest":"37dcf59ff59fa7345e45852af7b5fd38deca22fbcc9c1d9d2cf031811fac2f11","score":80,"complexity":"L","estimated_minutes":94,"split_recommended":true,"services":[],"authority":"ADVISORY","promotion":"FORBIDDEN"}
VERDICT APPROVE AUTHORITY DETERMINISTIC
REJECTED REQUEST_CHANGES BECAUSE NO_UNSAFE_CHANGE_REASON_FOUND
ADVISORY llm_verdict = "APPROVE" MODEL "openai/cursor-auto"
ASSERT VERDICT_AUTHORITY != "ADVISORY"There was a problem hiding this comment.
Validator approval after policy checks for exact head 96c842244f5823874aebea77dad38525b812dfd6.
Ticket: ticket-251
Correlation ID: local-semcod-planfile-pr-311-ticket-251
Model: openai/cursor-auto
Reviewed diff chunks: 1
Advisory LLM verdict: APPROVE
Advisory summary: Reviewed all 1 diff chunk(s). The visible change is narrowly scoped to replacing the retired Procache Git provenance with the canonical dockuri/procache repository at an immutable commit while retaining the existing distribution name. The manifest and both lockfile provenance entries are consistent, and all classified protected required checks passed.
Advisory findings: none
The LLM output above is advisory and was not used as the approval trust root.
Semantic review prerequisite: not_required; policy 676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7.
Actual PR impact radar
Exact range: 959224a9cc95fe0a73a0d26b285c6b17b7c55561...96c842244f5823874aebea77dad38525b812dfd6
Change digest: 37dcf59ff59fa7345e45852af7b5fd38deca22fbcc9c1d9d2cf031811fac2f11
Score: 80/100 (L), estimated 94 min, split recommended: true
Affected services/components: repository-wide/unclassified
Machine-readable radar JSONL and SVG
{"actual_change":{"additions":105,"base_sha":"959224a9cc95fe0a73a0d26b285c6b17b7c55561","binary_files":0,"categories":{"code":1,"configuration":2,"docs":2},"change_digest":"37dcf59ff59fa7345e45852af7b5fd38deca22fbcc9c1d9d2cf031811fac2f11","comparison":"959224a9cc95fe0a73a0d26b285c6b17b7c55561...96c842244f5823874aebea77dad38525b812dfd6","deletions":3,"file_count":5,"files":["project/TICKETS.md","project/ticket-251/README.md","project/ticket-251/intent.json","pyproject.toml","uv.lock"],"head_sha":"96c842244f5823874aebea77dad38525b812dfd6","service_count":0,"services":[]},"assessment_mode":"observed-pr","axes":{"coupling":5,"delivery":5,"scope":5,"uncertainty":3,"validation":2},"complexity":"L","confidence":0.9,"diagnostics":["RADAR-ACCEPTANCE-MISSING","RADAR-BUDGET-EXCEEDED"],"estimate":{"budget_minutes":30,"minutes":94,"within_budget":false},"impact":{"components":["3.10","dockuri","github.com","product","project","repository-root","subactor"],"files":["3.10/3.11/3.13","dockuri/procache","github.com/subactor/onedev-agent/pull/787","product/test","project/TICKETS.md","project/ticket-251/README.md","project/ticket-251/intent.json","pyproject.toml","subactor/procache","uv.lock"],"public_interfaces":[],"runtime_dependencies":1},"schema":"subactor.ticket-radar/v1","score":80,"split":{"parts":[{"estimated_minutes":12,"name":"Implement 3.10","scope":["3.10"]},{"estimated_minutes":12,"name":"Implement dockuri","scope":["dockuri"]},{"estimated_minutes":12,"name":"Implement github.com","scope":["github.com"]},{"estimated_minutes":12,"name":"Implement product","scope":["product"]},{"estimated_minutes":12,"name":"Implement project","scope":["project"]},{"estimated_minutes":15,"name":"Validate and project to trackers","scope":["tests","planfile","github/gitlab/jira projections"]}],"reason":"estimated_minutes_exceed_budget","recommended":true},"standards":[{"id":"wellmanifest/dsl","revision":"6c60fc4e0dd1f1bb74f46a7745e28019908d1203","version":"0.1.0-dev"},{"id":"wellmanifest/ticket-lifecycle","revision":"5bf581907a87b46a13a73e6c033d3abe4d9a306f","version":"0.1.0-dev"},{"id":"wellmanifest/git-lifecycle","revision":"7d77d4b7af57e69bc75c3a0290b3a4805c5c4438","version":"0.2.0-dev"},{"id":"wellmanifest/logs","revision":"48c284ef7a069055c0bcb6b900147ce5e65f8b43","version":"0.3.0"}],"ticket_ref":"ticket-251"}<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128" role="img"><title>ticket-251: fix(cache): migrate to canonical dockuri Procache</title><rect width="128" height="128" rx="12" fill="#f8fafc"/><g stroke-width="1"><polygon points="64,55 72,61 69,71 59,71 56,61" fill="none" stroke="#d7dde5"/><polygon points="64,47 80,59 74,78 54,78 48,59" fill="none" stroke="#d7dde5"/><polygon points="64,38 89,56 79,85 49,85 39,56" fill="none" stroke="#d7dde5"/><polygon points="64,30 97,53 84,92 44,92 31,53" fill="none" stroke="#d7dde5"/><polygon points="64,21 105,51 89,99 39,99 23,51" fill="none" stroke="#d7dde5"/><line x1="64" y1="64" x2="64" y2="21" stroke="#aab4c0"/><line x1="64" y1="64" x2="105" y2="51" stroke="#aab4c0"/><line x1="64" y1="64" x2="89" y2="99" stroke="#aab4c0"/><line x1="64" y1="64" x2="39" y2="99" stroke="#aab4c0"/><line x1="64" y1="64" x2="23" y2="51" stroke="#aab4c0"/></g><polygon points="64,21 105,51 79,85 54,78 23,51" fill="#fb923c" fill-opacity="0.45" stroke="#c2410c" stroke-width="2"/><circle cx="64" cy="64" r="3" fill="#c2410c"/><g font-family="sans-serif" font-size="7" fill="#334155"><text x="64" y="11" text-anchor="middle">SCO</text><text x="114" y="48" text-anchor="middle">COU</text><text x="95" y="107" text-anchor="middle">UNC</text><text x="33" y="107" text-anchor="middle">VAL</text><text x="14" y="48" text-anchor="middle">DEL</text></g><text x="64" y="124" text-anchor="middle" font-family="sans-serif" font-size="8" fill="#0f172a">L · 94m</text></svg>DECISION D-251-3448
TICKET ticket-251
HEAD_SHA 96c842244f5823874aebea77dad38525b812dfd6
CORRELATION_ID local-semcod-planfile-pr-311-ticket-251
ACTOR agent:ifuri-validator-agent[bot]
APPLIED_RULE P-CORE-015
INPUT author_login = "tom-sapletta-com"
INPUT observed_checks = ["notify=PASS","test (3.13)=PASS","test (3.10)=PASS","governance / enforce=PASS","ci-loop=PASS","governance / remote lifecycle=PASS","freshness=PASS","onedev/local-verify=PASS"]
INPUT required_checks = ["ci-loop","notify","freshness","governance / remote lifecycle","governance / enforce","test (3.10)","test (3.13)","onedev/local-verify"]
INPUT required_checks_source = "protected registry + GitHub applied rules (env/request)"
INPUT reviewer_login = "ifuri-validator-agent[bot]"
INPUT semantic_review_assessment = {"schema":"subactor.validator/semantic-review-assessment/v1","subject":{"repository":"semcod/planfile","pull_request":311,"head_sha":"96c842244f5823874aebea77dad38525b812dfd6","base_sha":"959224a9cc95fe0a73a0d26b285c6b17b7c55561","diff_sha256":"c37dd3a18f87c178014b914bb8a117f0c383f31cb3c5c50809bb4038bd03db5b"},"policy":{"policy_schema":"subactor.validator/semantic-review-policy/v1","policy_version":1,"policy_sha256":"676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7","required":false,"critical_paths":[],"observed_paths":["project/TICKETS.md","project/ticket-251/README.md","project/ticket-251/intent.json","pyproject.toml","uv.lock"]},"grounding":"full-diff-not-per-finding-proof","execution_authority":false,"status":"not_required","reason":null,"review_sha256":null,"unresolved":[]}
INPUT superseded_checks = []
INPUT ticket_radar_receipt = {"schema":"subactor.ticket-radar/v1","base_sha":"959224a9cc95fe0a73a0d26b285c6b17b7c55561","head_sha":"96c842244f5823874aebea77dad38525b812dfd6","change_digest":"37dcf59ff59fa7345e45852af7b5fd38deca22fbcc9c1d9d2cf031811fac2f11","score":80,"complexity":"L","estimated_minutes":94,"split_recommended":true,"services":[],"authority":"ADVISORY","promotion":"FORBIDDEN"}
VERDICT APPROVE AUTHORITY DETERMINISTIC
REJECTED REQUEST_CHANGES BECAUSE NO_UNSAFE_CHANGE_REASON_FOUND
ADVISORY llm_verdict = "APPROVE" MODEL "openai/cursor-auto"
ASSERT VERDICT_AUTHORITY != "ADVISORY"
Planfile still declares its persistent provider-cache backend at the retired
subactor/procacheGit URL. Resolve the existing dependency from canonicaldockuri/procacheat independently merged94cb311, including the fixes for connection reuse, numeric TTL identity and independent database concurrency.The manifest requirement and two lock provenance entries change. Parsed comparison of all 123 locked packages confirms no other dependency changes. All five installed Procache modules match the accepted source bytes. All 36 scoped provider-cache tests, scoped Testless analysis and managed governance pass; the final focused rerun also passes36 cases after the private image build was stopped. A full local run was interrupted after24 minutes with775 passes,12 skips and two failures; both failing cases reproduce with the old Procache dependency and unchanged product/test source.
Protected publication must wait for the separately owned OneDev input-pair and three-interpreter environment qualification in https://github.com/subactor/onedev-agent/pull/787. Preserve the full Python 3.10/3.11/3.13 matrix and independent exact-head approval; this PR does not alter verification policy.
Ticket: ticket-251