Skip to content

fix(sync): read only selected GitHub issues during inbound sync (ticket-253) - #312

Merged
ifuri-validator-agent[bot] merged 1 commit into
mainfrom
ticket/253-scoped-inbound-reads
Oct 28, 2026
Merged

ifuri-validator-agent[bot] merged 1 commit into
mainfrom
ticket/253-scoped-inbound-reads

Conversation

@tom-sapletta-com

Copy link
Copy Markdown
Contributor

Scoped GitHub inbound sync previously enumerated repository issues before applying --ticket, so an unrelated page or hydration could stall one mapped ticket. Resolve selectors before fetch and read only canonical issue numbers through the optional GitHub selected-reader capability. Preserve repository/packet bindings, labels, snapshots, CAS and active-execution guards; unscoped sync and older adapters retain their existing listing behavior.

Validation: 667 affected tests pass in the admitted worktree with Testless coverage; Ruff and native governance pass. The 60 selected-provider cases cover exact reads, malformed/foreign references, PR rejection, failures before writes, dry-run and concurrent/live-owner protection.

Native ticket: ticket-253. Part of #256; total-operation deadline and remaining transport work stay in that issue. Runtime adoption is separate from source publication.

@ifuri-validator-agent ifuri-validator-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Validator approval after policy checks for exact head ee90ee103d39f77fd0bc7d7ebe36d510b353cc86.

Ticket: ticket-253
Correlation ID: local-semcod-planfile-pr-312-ticket-253
Model: openai/cursor-auto
Reviewed diff chunks: 2
Advisory LLM verdict: APPROVE
Advisory summary: Reviewed all 2 diff chunk(s). The visible change correctly resolves scoped selections before provider fetch, uses exact GitHub issue reads when supported, validates returned repository/id/key/URL bindings, preserves label filtering, and retains existing full-list behavior for unscoped or incompatible backends. No unresolved correctness or security defect is evident in this chunk. | The visible chunk adds comprehensive regression coverage for scoped GitHub issue reads, selector normalization and deduplication, repository and packet identity validation, atomic fetch-before-write behavior, CAS conflict handling, active-execution protection, dry runs, label and sprint filters, and preservation of legacy unscoped and non-GitHub behavior. No unresolved code or security defect is evident in this chunk.
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: 8e2b18637514adac380018f5ffb840a87f3e05a8...ee90ee103d39f77fd0bc7d7ebe36d510b353cc86
Change digest: 552f560d8e0f938dbfa292163d2142fb127e4d1e4579cdd39696e72514d582fe
Score: 68/100 (L), estimated 78 min, split recommended: true
Affected services/components: repository-wide/unclassified

Machine-readable radar JSONL and SVG
{"actual_change":{"additions":491,"base_sha":"8e2b18637514adac380018f5ffb840a87f3e05a8","binary_files":0,"categories":{"code":2,"configuration":1,"docs":2,"tests":1},"change_digest":"552f560d8e0f938dbfa292163d2142fb127e4d1e4579cdd39696e72514d582fe","comparison":"8e2b18637514adac380018f5ffb840a87f3e05a8...ee90ee103d39f77fd0bc7d7ebe36d510b353cc86","deletions":9,"file_count":6,"files":["planfile/sync/github.py","planfile/sync/operations.py","project/TICKETS.md","project/ticket-253/README.md","project/ticket-253/intent.json","tests/test_sync_selected_provider_reads.py"],"head_sha":"ee90ee103d39f77fd0bc7d7ebe36d510b353cc86","service_count":0,"services":[]},"assessment_mode":"observed-pr","axes":{"coupling":5,"delivery":3,"scope":5,"uncertainty":3,"validation":1},"complexity":"L","confidence":0.9,"diagnostics":["RADAR-ACCEPTANCE-MISSING","RADAR-BUDGET-EXCEEDED"],"estimate":{"budget_minutes":30,"minutes":78,"within_budget":false},"impact":{"components":["concurrent","malformed","planfile","project","repository","tests"],"files":["concurrent/live-owner","malformed/foreign","planfile/sync/github.py","planfile/sync/operations.py","project/TICKETS.md","project/ticket-253/README.md","project/ticket-253/intent.json","repository/packet","tests/test_sync_selected_provider_reads.py"],"public_interfaces":[],"runtime_dependencies":0},"schema":"subactor.ticket-radar/v1","score":68,"split":{"parts":[{"estimated_minutes":12,"name":"Implement concurrent","scope":["concurrent"]},{"estimated_minutes":12,"name":"Implement malformed","scope":["malformed"]},{"estimated_minutes":12,"name":"Implement planfile","scope":["planfile"]},{"estimated_minutes":12,"name":"Implement project","scope":["project"]},{"estimated_minutes":12,"name":"Implement repository","scope":["repository"]},{"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-253"}
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128" role="img"><title>ticket-253: fix(sync): read only selected GitHub issues during inbound sync (ticket-253)</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 59,71 39,56" 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 · 78m</text></svg>
Merge will be attempted after this approval when explicitly authorized. ## Decision record (recomputable)
DECISION D-253-1692
TICKET ticket-253
HEAD_SHA ee90ee103d39f77fd0bc7d7ebe36d510b353cc86
CORRELATION_ID local-semcod-planfile-pr-312-ticket-253
ACTOR agent:ifuri-validator-agent[bot]
APPLIED_RULE P-CORE-015
INPUT author_login = "tom-sapletta-com"
INPUT observed_checks = ["notify=PASS","governance / remote lifecycle=PASS","governance / enforce=PASS","freshness=PASS","ci-loop=PASS","test (3.13)=PASS","test (3.10)=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":312,"head_sha":"ee90ee103d39f77fd0bc7d7ebe36d510b353cc86","base_sha":"8e2b18637514adac380018f5ffb840a87f3e05a8","diff_sha256":"0ed2867193d68392f6e45e31e4159b0ecb97d76a3a274b3c49ac9756d952cd8d"},"policy":{"policy_schema":"subactor.validator/semantic-review-policy/v1","policy_version":1,"policy_sha256":"676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7","required":false,"critical_paths":[],"observed_paths":["planfile/sync/github.py","planfile/sync/operations.py","project/TICKETS.md","project/ticket-253/README.md","project/ticket-253/intent.json","tests/test_sync_selected_provider_reads.py"]},"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":"8e2b18637514adac380018f5ffb840a87f3e05a8","head_sha":"ee90ee103d39f77fd0bc7d7ebe36d510b353cc86","change_digest":"552f560d8e0f938dbfa292163d2142fb127e4d1e4579cdd39696e72514d582fe","score":68,"complexity":"L","estimated_minutes":78,"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"

@ifuri-validator-agent
ifuri-validator-agent Bot merged commit 959224a into main Oct 28, 2026
8 checks passed
@ifuri-validator-agent
ifuri-validator-agent Bot deleted the ticket/253-scoped-inbound-reads branch October 28, 2026 15:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant