Repository navigation
Description
Summary
Re-running session import can report an existing Claude session as imported even though its displayed conversation remains at the earlier import. The native session ID is preserved, but the success result does not distinguish an unchanged snapshot from refreshed history.
Related: #27581 (closed/locked) and #28677 (Codex). This report focuses on repeat-import success accounting and recording a changed source as imported without importing its new messages.
Environment
- T3 Code macOS desktop 0.1.7, build
322f6544dfad - Local Claude Desktop Code session; CLI transcript version 2.1.317
- Source transcript in the standard Claude projects directory
Observed behavior
The imported T3 conversation displayed messages from October 19. The same native transcript contained November 5 messages, including an ordinary user record with string content, isSidechain: false, and no isMeta or isCompactSummary flags. The native UUID matched Claude Desktop's metadata and the imported T3 thread.
Running the project importer again showed an “Imported 2 threads” banner, but did not update this conversation. No follow-up prompt was sent from T3, so actual native resumption and model context were not tested.
Reproduction
- Import an eligible local Claude conversation.
- Continue that conversation outside T3, adding a plain user/assistant text exchange.
- Run import again for the same project.
- Compare the returned import count and displayed conversation with the source transcript.
Expected behavior
If re-import intentionally preserves a one-time snapshot, the result should make clear that an existing thread was not refreshed. A changed transcript should not be recorded as fully imported when its new messages were not imported.
If refreshing is intended, it must preserve native identity and existing T3 activity, avoid duplicate messages, and handle bounded-history windows safely.
Source evidence
In apps/server/src/project/AgentSessionImporter.ts at the installed build:
- The
AlreadyImportedbranch incrementsimportedCount. - For an existing
v1_importthread, theImportablebranch records the supplied transcript identity and returns success without writing new conversation events. - This means even a changed transcript can be marked completed while the displayed snapshot is unchanged.
Scope and limitations
This is not a claim that native resumption rewinds the model to the displayed date. It is also not a confirmed transcript-size rejection: no corresponding selected-history-budget warning was found in the inspected logs.
No private transcripts, local paths, project content, or session identifiers are included. PR #31641 proposes a tested correction to the misleading import count only. It preserves existing runtime recovery and transcript bookkeeping; stale history and changed-source bookkeeping remain unresolved. Please clarify the intended refresh behavior before a broader synchronization change.
Investigation and report prepared with Codex in the Codex desktop app.
Activity