Repository navigation
Gated repeat import on 2026.10.19 appends closed-item history and fails the no-diff gate #175
Description
Evidence and version scope
Confirmed in pm-vcs run 40067990579, job 120795158174, 2026-10-24, caller checkout fd0d9b66f66b72db40c6d0947a2c2433cc7fe124, reusable workflow 09412243e2543adedbb73a4f4b2f2b6e2ac0c8a6.
The installed-package receipt resolves and verifies pm-github 2026.10.19. The deprecated input says 2026.10.16, but that is not the actual tested package version.
Expected and actual
The first atomic import reports 4 new, 1 updated. Its immediate repeat reports 0 new, 5 updated. Both privacy gates pass with 0 findings and 11 scanned files. The subsequent no-diff check exits 1, preventing publication.
The second import appends 12 history rows across 5 already-closed items:
- 5 close events replace
closed_atwith the current import time. - 5 import-finalization events restore the original source closure dates.
- 2 additional update events change only
updated_atand have no message.
The final item source closure dates are restored, so this is not evidence that those dates remain corrupted. It is durable history/timestamp churn and a blocked scheduled sync. Batch IDs differ: github-import-b7e719cac1f679c1 then github-import-9a6e42f32ffd814b.
Reproduction / regression fixture
In an isolated synthetic tracker, import a batch mixing new closed GitHub issues and an already-linked closed item with original creation/closure dates. Snapshot item and history bytes after the first successful atomic gated import. Repeat with identical provider fixtures and compare. The existing hosted log supplies the concrete failure and diff; no live import or workflow rerun was initiated by this review.
Current-source inspection, not current-release reproduction
At f4c29e8391462d03be4c3303e8309ece7864c025, index.ts still constructs forced closed-state updates. Transaction context selection in import-fidelity.ts treats unrecognized/message-free events as external context. The timestamp-only SDK updates may therefore contribute to transaction identity churn. This is a static investigation lead, not an independently reproduced current-head defect or a proven complete root cause. The update-only refresh no-change filter is a different path.
Canonical goal and dedup
pm-github-c093 describes idempotent source-lifecycle finalization. pm-github-aiok explicitly requires repeat-import idempotency. Related #142 and #154 do not identify this hosted repeat-import failure. All-status issues/PRs in pm-github and pm-vcs were checked before filing.
Acceptance
- Repeated identical atomic gated imports leave item and append-only history bytes unchanged, including the mixed new/existing closed-item fixture.
- Preserve exact source lifecycle dates and truthful native mutation clocks.
- Genuine upstream changes and local reopen/lifecycle cycles still invalidate stale completed transactions.
- Interrupted transaction replay remains recoverable without duplicate effects.
- Keep the no-diff publication gate and privacy gate intact; do not suppress history diffs or weaken assertions.
- Verify the relevant shipped artifact and distinguish current-source results from the hosted 2026.10.19 failure.
Activity