Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
e9e0c9a
fix: keep issue references separate from import identity
unbraind Nov 11, 2026
ed050d3
docs(pm): record issue 230 pull request and validation
unbraind Nov 11, 2026
080f1e6
Preserve linked issue side data and replay original import plans
unbraind Nov 11, 2026
90d530f
fix: preserve GitHub identities and gate every import replay
unbraind Nov 11, 2026
b4c941f
fix: atomically publish durable GitHub recovery state
unbraind Nov 11, 2026
12dfc79
fix: retain Markdown blockers and honor PR URL aliases
unbraind Nov 11, 2026
eeee95d
fix: enforce ownership at every GitHub import write
unbraind Nov 11, 2026
23cb206
Merge remote-tracking branch 'origin/main' into fix/reference-tags-ar…
unbraind Nov 12, 2026
f252e3e
fix: align import completion, ownership and durability checks
unbraind Nov 12, 2026
0a13125
Merge remote-tracking branch 'origin/main' into fix/reference-tags-ar…
unbraind Nov 12, 2026
bd8d52d
fix: require consistent unique GitHub owners at writes
unbraind Nov 12, 2026
d9d9bc7
fix: prove importer creation and support the SDK floor
unbraind Nov 12, 2026
121f5b6
Require consistent ownership for every GitHub sync target
unbraind Nov 12, 2026
3d5f91b
Keep GitHub reference tags out of import ownership
unbraind Nov 12, 2026
779e67d
Guard import side data and recovery payloads consistently
unbraind Nov 12, 2026
435498e
Keep ownership locking compatible with the minimum SDK
unbraind Nov 12, 2026
64f79ca
Preserve redacted preflight evidence before staging recovery plans
unbraind Nov 12, 2026
224bb3b
Share native ownership hook setup and record verification
unbraind Nov 12, 2026
f82ecf5
Record local SDK health boundary
unbraind Nov 12, 2026
5f6749f
Keep scoped project pulls from aborting on conflicts between unselect…
unbraind Nov 12, 2026
0761b6e
Keep refresh recovery scoped and require fenced ownership leases
unbraind Nov 12, 2026
f037df1
Share the board ownership-index setup so the duplication gate passes …
unbraind Nov 12, 2026
4de7d4c
End ownership scopes for detached work and correct the raw-collector …
unbraind Nov 12, 2026
d28bd75
Merge released main while preserving reference identity changes
unbraind Nov 12, 2026
017b62c
Require whole GitHub owner values and regenerate identity anchors
unbraind Nov 12, 2026
b29cfb1
fix: retain legacy native GitHub declaration owners
unbraind Nov 12, 2026
58ae396
fix: scope GitHub ownership checks to selected targets
unbraind Nov 13, 2026
a5f0273
Merge remote-tracking branch 'origin/main' into fix/reference-tags-ar…
unbraind Nov 13, 2026
948ef40
fix: share declaration parsing and retain deferred webhook deliveries
unbraind Nov 13, 2026
6658b2f
fix: recheck ownership at every locked write
unbraind Nov 13, 2026
9635d75
Check copied selected items against their own GitHub owner in project…
unbraind Nov 13, 2026
72d2131
Read ownership state through one identity-safe helper in every planne…
unbraind Nov 13, 2026
a5f1cc1
Keep unrelated contradictory owners from aborting citation matching, …
unbraind Nov 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .agents/pm/history/pm-github-blocker-format-followup.jsonl

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions .agents/pm/history/pm-github-curated-reopen-followup.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{"hash_algorithm":"sha256","ts":"2026-11-11T18:20:18.830Z","author":"codex-github230-1111","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"fb26b8f462e36ea161357e8c","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"create","patch":[{"op":"add","path":"/metadata/id","value":"pm-github-curated-reopen-followup"},{"op":"add","path":"/metadata/title","value":"Distinguish source-assigned completion dates when curated items reopen"},{"op":"add","path":"/metadata/description","value":"Review follow-up from PR #233 thread PRRT_kwDOTbN4pM62Q98t: preserve completion dates that predate linking, but evaluate clearing dates assigned by a prior GitHub closure when the source reopens. Separate from round-4 durable-state publication; requires explicit provenance for the completion date and real SDK reopen tests."},{"op":"add","path":"/metadata/type","value":"Issue"},{"op":"add","path":"/metadata/status","value":"open"},{"op":"add","path":"/metadata/priority","value":3},{"op":"add","path":"/metadata/tags","value":["gh:unbraind/pm-github#233","review-followup"]},{"op":"add","path":"/metadata/created_at","value":"2026-11-11T18:20:18.830Z"},{"op":"add","path":"/metadata/updated_at","value":"2026-11-11T18:20:18.830Z"},{"op":"add","path":"/metadata/author","value":"codex-github230-1111"}],"before_hash":"3cc22dff72be7b14824654a7a64ea62b04799939b2fee54c1b5f52ca60bf6df0","after_hash":"ce2e022746c44908ab0f9ce25d59b4c7c2885742245aefa0ba8e70890bdd2938","item_hash_version":3,"message":"","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"b17f762acf4fdb7b5079665e7f316b7835ecc45e80538012b5e54b80823ae6e0"}
{"hash_algorithm":"sha256","ts":"2026-11-11T18:22:26.826Z","author":"codex-github230-1111","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"fb26b8f462e36ea161357e8c","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"files_add","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-11-11T18:22:26.826Z"},{"op":"add","path":"/metadata/files","value":[{"path":"import-fidelity.ts","scope":"project"}]}],"before_hash":"ce2e022746c44908ab0f9ce25d59b4c7c2885742245aefa0ba8e70890bdd2938","after_hash":"08edf34d036da3e1a647e0b51a24e55b049eaa525818134e88839d1288f81d9f","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"445f72e7b05d0f2e3fc986d3ed4f8f477b001ece2be7ad32431d9c3e0c716015"}
{"hash_algorithm":"sha256","ts":"2026-11-11T18:22:28.358Z","author":"codex-github230-1111","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"fb26b8f462e36ea161357e8c","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"docs_add","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-11-11T18:22:28.358Z"},{"op":"add","path":"/metadata/docs","value":[{"path":"https://github.com/unbraind/pm-github/pull/233#discussion_r4540585133","scope":"project"}]}],"before_hash":"08edf34d036da3e1a647e0b51a24e55b049eaa525818134e88839d1288f81d9f","after_hash":"4cf58686d5a748109e8e97a0cb2b9d41f17c499c4fafa06c21218b03686a3458","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"e4c90f369ed1dc6280d5a83b35f2c3c6d69933c7971b2d191874319a9f65f458"}
{"hash_algorithm":"sha256","ts":"2026-11-11T22:07:08.273Z","author":"codex-github230-1111","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"fb26b8f462e36ea161357e8c","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"comment_add","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-11-11T22:07:08.273Z"},{"op":"add","path":"/metadata/comments","value":[{"created_at":"2026-11-11T22:07:08.272Z","author":"codex-github230-1111","text":"Round 6 review reproduction retained for later work (PRRT_kwDOTbN4pM62Q98t): start with a curated linked item with no completed_at, import a GitHub closure so completed_at is assigned from github_closed_at, then reopen the source and re-sync. The item becomes open and closed_at is cleared, but the source-assigned completed_at remains. A pre-link local completion date must still be preserved. Do not clear every completed_at; track source assignment distinctly before implementing reopen cleanup. This round intentionally changes no completion-date behavior."}]}],"before_hash":"4cf58686d5a748109e8e97a0cb2b9d41f17c499c4fafa06c21218b03686a3458","after_hash":"2e5c6d77c7062488f21de5c059fe631a55489c6e0aaa00e99889806ac0368f5e","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"89347634a635ce536296cec6807f0a9d6b238a8747b313c4e91a65cda13896fa"}
{"hash_algorithm":"sha256","ts":"2026-11-12T08:53:49.201Z","author":"codex-github230-1111","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"fb26b8f462e36ea161357e8c","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-11-12T08:53:49.201Z"},{"op":"remove","path":"/metadata/tags/1"},{"op":"replace","path":"/metadata/tags/0","value":"review-followup"}],"before_hash":"2e5c6d77c7062488f21de5c059fe631a55489c6e0aaa00e99889806ac0368f5e","after_hash":"61993f35367968b024c72ee107b23d5b9633388dfb1cee3bf9993c3350c6715a","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"4233a7ba6bdf5192ffadaca52d61a205c342f3f9238d61ff747de1ece16618ba"}
{"hash_algorithm":"sha256","ts":"2026-11-12T08:53:50.020Z","author":"codex-github230-1111","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"fb26b8f462e36ea161357e8c","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"docs_add","patch":[{"op":"add","path":"/metadata/docs/0/note","value":"Context reference; this follow-up is not the referenced issue or PR"},{"op":"replace","path":"/metadata/docs/0/path","value":"https://github.com/unbraind/pm-github/pull/233"},{"op":"add","path":"/metadata/docs/1","value":{"path":"https://github.com/unbraind/pm-github/pull/233#discussion_r4540585133","scope":"project"}},{"op":"replace","path":"/metadata/updated_at","value":"2026-11-12T08:53:50.020Z"}],"before_hash":"61993f35367968b024c72ee107b23d5b9633388dfb1cee3bf9993c3350c6715a","after_hash":"de3e43d2c908683f1aae4c4caeddab5e499d1105fb1b3885a3c7ab91dab869bb","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"ac60a233d5d59e409bf1a9590bba90f7886188e9550b658f41babba492f265ae"}
{"hash_algorithm":"sha256","ts":"2026-11-12T08:53:50.742Z","author":"codex-github230-1111","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"fb26b8f462e36ea161357e8c","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/1","value":{"created_at":"2026-11-12T08:53:50.741Z","author":"codex-github230-1111","text":"Round 9 tracker audit: moved the parent issue or PR reference from a gh tag to a docs link. This is reference hygiene only; deferred implementation remains out of scope and this item stays open."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-11-12T08:53:50.742Z"}],"before_hash":"de3e43d2c908683f1aae4c4caeddab5e499d1105fb1b3885a3c7ab91dab869bb","after_hash":"38ff08cd447d1882279aa7c99544418c7ef7f988ff02e06b1ef595f22b815415","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"9ba587af8fe64b1c27108f15b0ddf8a9d05565a9b29ee0251fb32783cddc7229"}
Loading
Loading