From 8d293d697bcb157adda4252a16db27b2c0fb3e23 Mon Sep 17 00:00:00 2001 From: SteveBot <1153461+unbraind@users.noreply.github.com> Date: Sat, 14 Nov 2026 00:51:46 +0100 Subject: [PATCH] Close tracker items delivered by merged pull requests - [pm-github-reference-identity](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-reference-identity.toon): #233 (5766ef0) --- .agents/pm/history/pm-github-reference-identity.jsonl | 1 + .agents/pm/issues/pm-github-reference-identity.toon | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.agents/pm/history/pm-github-reference-identity.jsonl b/.agents/pm/history/pm-github-reference-identity.jsonl index 713745c6..01579b09 100644 --- a/.agents/pm/history/pm-github-reference-identity.jsonl +++ b/.agents/pm/history/pm-github-reference-identity.jsonl @@ -266,3 +266,4 @@ {"hash_algorithm":"sha256","ts":"2026-11-13T10:41:58.806Z","author":"orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"31217a101ccd67a43c135f1c","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"xhigh","source":"environment"},"role":null,"topic":null,"version":{"value":"2.1.322","source":"probe"}},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/133","value":{"created_at":"2026-11-13T10:41:58.789Z","author":"orchestrator","text":"Orchestrator, CodeRabbit PRRT_kwDOTbN4pM63DOtP on 6658b2f. The pull-plan board-consistency guard (projects.ts:659) used only ownership.states.get(pm), so a separately allocated copy of a selected item skipped the owner check, and a board issue o/r#8 could pull its status onto an item that owns o/r#7. It now derives claims with the same githubOwnershipClaims fallback as line 617. The regression in test/projects.test.ts refuses the copy-with-mismatch case (0/1 with the fix reverted) and still pulls when the copy is on its own issue. Inventory anchors were regenerated with scripts/identity-inventory.ts --write. Gates: projects, round-eighteen and import-projection pass 78/78; identity-inventory 5/5; lint and typecheck pass."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-11-13T10:41:58.806Z"}],"before_hash":"343716378d03e96b16747309682f8f33a55502889284536ccef21ec9795bec28","after_hash":"e34bd349252626ec25ea4d5700ef2a9d3d9db021239457f01ea822de1a7e0ba1","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"4e0c99f5b7c12eb04b4784b66864144cfef5479e710592b5738cdfbf7b115d67"} {"hash_algorithm":"sha256","ts":"2026-11-13T11:49:25.058Z","author":"orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"31217a101ccd67a43c135f1c","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"xhigh","source":"environment"},"role":null,"topic":null,"version":{"value":"2.1.322","source":"probe"}},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/134","value":{"created_at":"2026-11-13T11:49:25.047Z","author":"orchestrator","text":"Orchestrator, CodeRabbit PRRT_kwDOTbN4pM63ENyF on 9635d75: the push planner had the same identity-keyed lookup as the pull planner. Fixed as a class. The new ownershipStateOf(index, item) in import-ownership.ts reads states by identity and derives claims for a separately allocated copy. Every planner and selector that read ownership.states directly now uses it: projects push, pull and import, refresh selection, import-fidelity targets, index sync/import selection and the scope warning. The two sites with their own fallback parameters stay (assertGithubImportOwner with initialLink, closeout with the delivery repo). New push-planner regression for the copied item (refuses a mismatched board issue, plans set-status on its own issue); the inventory classifies the helper. Gates: 764 tests across the affected files, with only the five inventory tests failing before the classification and 5/5 after; projects 46/46 with the inventory; lint and typecheck pass."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-11-13T11:49:25.058Z"}],"before_hash":"e34bd349252626ec25ea4d5700ef2a9d3d9db021239457f01ea822de1a7e0ba1","after_hash":"26da8ec498559aa659238496a38b22f7e7ff0edf7969f96d6f533af11ed93787","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"45130cc75e06f38caa10c33cc06e99b0c389cdecd01aa7b14624e74d9ae0cc97"} {"hash_algorithm":"sha256","ts":"2026-11-13T14:17:53.658Z","author":"orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"31217a101ccd67a43c135f1c","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"xhigh","source":"environment"},"role":null,"topic":null,"version":{"value":"2.1.322","source":"probe"}},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/135","value":{"created_at":"2026-11-13T14:17:53.647Z","author":"orchestrator","text":"Orchestrator, round on 72d2131. (1) CodeRabbit Major PRRT_kwDOTbN4pM63IEZp: hasStructuredOwnership only needs to know whether owners exist, so it now uses the non-throwing githubOwnershipClaims(item).owners. An eligible citation candidate whose importer id (#41) and github_url (#42) disagree no longer aborts matching. The new cited-issue-adoption regression fails with 'Got unwanted exception' when the change is reverted. (2) Greptile P2 PRRT_kwDOTbN4pM63HwYp: the inventory scanner's helper set includes ownershipStateOf, and the regenerated inventory lists its call sites. (3) CodeRabbit Minor PRRT_kwDOTbN4pM63IEZc: docs/identity-collisions.md lists the marker-free legacy description declaration as a claim source. Gates: cited-issue-adoption, identity-inventory, import-fidelity, owner-field-values and projects pass; lint and typecheck pass."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-11-13T14:17:53.658Z"}],"before_hash":"26da8ec498559aa659238496a38b22f7e7ff0edf7969f96d6f533af11ed93787","after_hash":"8b30fa38be34152f1d5e0f038523918399af68c980583a2a8fbda1735deb23c3","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"14ee5d1027d0a2c8f3814e0c0ce3ca9fe3b73fa95dd75f2260eb1a16e9634e69"} +{"hash_algorithm":"sha256","ts":"2026-11-13T23:51:40.127Z","author":"claude-hub","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"31217a101ccd67a43c135f1c","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"xhigh","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.322","source":"probe"}},"op":"close","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-11-13T23:51:40.127Z"},{"op":"replace","path":"/metadata/status","value":"closed"},{"op":"add","path":"/metadata/closed_at","value":"2026-11-13T23:51:40.059Z"},{"op":"add","path":"/metadata/completed_at","value":"2026-11-13T23:51:40.059Z"},{"op":"add","path":"/metadata/resolution","value":"Implemented and merged in #233 (5766ef0)."},{"op":"add","path":"/metadata/expected_result","value":"The change described by this item is on main."},{"op":"add","path":"/metadata/actual_result","value":"Merged in #233 as 5766ef0; checks successful at head a5f1cc1: CodeQL, bun-release (22), bun-release (26), codeql, semgrep-cloud-platform/scan, test (22), test (26)."},{"op":"add","path":"/metadata/close_reason","value":"Delivered by #233 \"Keep GitHub reference tags out of import identity\" (merged as 5766ef0). Checks successful at the PR head a5f1cc1: CodeQL, bun-release (22), bun-release (26), codeql, semgrep-cloud-platform/scan, test (22), test (26)."}],"before_hash":"8b30fa38be34152f1d5e0f038523918399af68c980583a2a8fbda1735deb23c3","after_hash":"f536c572e638e2a8e9c8ae115e333ab24d045071b61e1fd8f6c4503d1818d9bc","item_hash_version":3,"context":{"completion":{"timestamp":"2026-11-13T23:51:40.059Z","source":"close_time"},"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"86d46316820728137c61307322c1ad3fa70b5f026fad74ecd9c4cdf71ff63ea1"} diff --git a/.agents/pm/issues/pm-github-reference-identity.toon b/.agents/pm/issues/pm-github-reference-identity.toon index 492c1c24..fdc859db 100644 --- a/.agents/pm/issues/pm-github-reference-identity.toon +++ b/.agents/pm/issues/pm-github-reference-identity.toon @@ -3,12 +3,17 @@ title: "Keep GitHub reference tags separate from import identity (BREAKING: PM C description: "Preserve curated local fields, allow shared reference tags, and retain migration-free matching of existing importer provenance." type: Issue pm_format_version: 2 -status: in_progress +status: closed priority: 2 tags[2]: changelog-unreleased,"gh:unbraind/pm-github#230" created_at: "2026-11-11T10:19:25.073Z" -updated_at: "2026-11-13T14:17:53.658Z" +updated_at: "2026-11-13T23:51:40.127Z" +closed_at: "2026-11-13T23:51:40.059Z" +completed_at: "2026-11-13T23:51:40.059Z" author: codex-github230-1111 +resolution: Implemented and merged in #233 (5766ef0). +expected_result: The change described by this item is on main. +actual_result: "Merged in #233 as 5766ef0; checks successful at head a5f1cc1: CodeQL, bun-release (22), bun-release (26), codeql, semgrep-cloud-platform/scan, test (22), test (26)." comments[136]{created_at,author,text}: "2026-11-11T10:19:28.756Z",codex-github230-1111,"Read issue 230 and all comments. Branch starts from main; PR229 changes workflows and docs separately. Plan: distinguish explicit importer identity from references, preserve curated linked content, retain legacy persisted provenance, and prove behavior with real SDK trackers and behavioral reverts. Task-specific gate budget applies: focused importer/sync/dependent tests, lint and typecheck; full suite only within 45 minutes." "2026-11-11T10:24:30.654Z",codex-github230-1111,"Implemented separate durable import identity lookup; shared gh references no longer select owners or collide. Curated links merge provenance/lifecycle while deterministic importer records mirror content. New real SDK regressions pass 9/9, including no-git curated links and byte-identical legacy resync beside shared references. Reviewing existing tests that assumed tag-only ownership; updating mirror fixtures to explicit importer identities." @@ -1011,6 +1016,7 @@ docs[7]: - path: README.md scope: project note: All owner claims must agree and remain unique; journal-aware cleanup +close_reason: "Delivered by #233 \"Keep GitHub reference tags out of import identity\" (merged as 5766ef0). Checks successful at the PR head a5f1cc1: CodeQL, bun-release (22), bun-release (26), codeql, semgrep-cloud-platform/scan, test (22), test (26)." github_number: 230 github_url: "https://github.com/unbraind/pm-github/issues/230" body: ""