Skip to content

feat(import): restore external agent sessions - #41

Draft
patroza wants to merge 144 commits into
fork/changesfrom
draft/restore-external-session-import
Draft

feat(import): restore external agent sessions#41
patroza wants to merge 144 commits into
fork/changesfrom
draft/restore-external-session-import

Conversation

@patroza

@patroza patroza commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Parked feature draft

Role Value
Base fork/changes
Head draft/restore-external-session-import
Integration Deliberately not composed
Current state Requires refresh onto the rewritten fork/changes before review resumes

This draft restores the complete external agent-session import feature as one isolated change:

  • import-sessions CLI command and registration
  • reusable import engine using the external-session SQLite helpers
  • server RPC and WebSocket handling
  • typed contracts and client-runtime command
  • project-sidebar action and user feedback
  • focused formatter coverage

PR #53 removed the generic import entry points from the runnable base. This PR remains the sole
home of the full import feature and must not leak into fork/changes piecemeal.

Last verified before parking

  • vp test run apps/server/src/bin.test.ts apps/server/src/externalSessions/importSessions.test.ts
    (19 passed)
  • vp run --filter t3 typecheck
  • vp run --filter @t3tools/web typecheck
  • focused formatting passed

Provenance

Reconstructed from historical session-import work after PR #53, without unrelated reversions.

@patroza
patroza force-pushed the draft/restore-external-session-import branch from cace07b to 0afe66d Compare July 25, 2026 11:21
@patroza patroza changed the title Restore external agent-session import feat: external agent-session import Jul 25, 2026
@patroza
patroza force-pushed the draft/restore-external-session-import branch from 0afe66d to 4823383 Compare July 25, 2026 14:31
@patroza
patroza force-pushed the draft/restore-external-session-import branch 2 times, most recently from 455a316 to 75a9bc5 Compare July 25, 2026 14:56
@patroza
patroza force-pushed the fork/changes branch 4 times, most recently from 79176b5 to d526bc4 Compare July 26, 2026 08:56
@patroza patroza changed the title feat: external agent-session import feat(import): restore external agent sessions Jul 26, 2026
@patroza patroza mentioned this pull request Jul 26, 2026
@patroza patroza added PARKED Draft work intentionally excluded from integration until explicitly resumed. enhancement New feature or request labels Jul 26, 2026
@patroza
patroza force-pushed the fork/changes branch 3 times, most recently from 0373b28 to b7823d4 Compare July 27, 2026 05:25
@patroza
patroza force-pushed the draft/restore-external-session-import branch 4 times, most recently from 8360d0f to 2fea203 Compare July 27, 2026 07:10
@patroza
patroza force-pushed the draft/restore-external-session-import branch from 2fea203 to d1d7386 Compare July 27, 2026 10:57
@patroza
patroza force-pushed the draft/restore-external-session-import branch from d1d7386 to f4772cd Compare July 27, 2026 11:56
@patroza
patroza force-pushed the draft/restore-external-session-import branch from f4772cd to 37d2a2d Compare July 27, 2026 12:50
patroza and others added 17 commits July 29, 2026 07:19
…se (#138)

Stack sync fails replaying fork/changes onto candidates at
ce33187 (restore recent work queue) on packages/contracts/src/settings.test.ts.
Take theirs (downstream) as a durable * policy so the next upstream sync can proceed.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…ent (#139)

* feat(web): collapsible Settled shelf when hide settled on classic Recent

Classic v1 recency/none no longer drops settled threads when Hide settled is
on. Active threads stay in the main list; settled move to a bottom shelf
(collapsible, paged, keep open route row) matching Sidebar V2.

* fix(desktop): stub onBeforeQuitForUpdate in DesktopUpdates tests

Unblocks package typecheck after ElectronApp gained onBeforeQuitForUpdate;
other desktop test mocks already stubbed it.

---------

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Bump @anthropic-ai/claude-agent-sdk for current stream message union and
required canUseTool requestId. Handle new system/top-level SDK messages
without work-log spam so typecheck exhaustiveness stays green.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Require full local verification (vp check, scoped typecheck, focused tests,
lockfile) before every push, and require every stack layer's Fork CI jobs to
pass before advancing to the next layer.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
#141)

Supersede the softer #142 wording: require full monorepo typecheck before
every push, and stop the line on each stack layer until the full local CI
gate is green before advancing. Docs-only; ClaudeAdapter fixes remain from #140.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
When Hide settled shelves history under classic Recency/None, group settled
rows with the same settle-time recency buckets as Sidebar V2 (Last Hour /
Earlier Today / …). Reuse groupSettledThreadsByRecencyForSidebarV2 and the
shared View preference for “Date headers on settled”.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…se (#144)

Stack sync fails replaying the root fork/changes commit onto
fork/candidates when ChatMarkdown diverges (markdown image / browser
link work vs candidates). Prefer the replayed fork/changes side via a
durable commit:\"*\" policy so the next sync auto-resolves.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…#145)

After ChatMarkdown, stack sync still stops replaying fork/changes onto
fork/candidates on apps/mobile HomeScreen (Recent/Projects/Board rewrite).
Prefer the replayed fork/changes side with a durable commit:\"*\" policy.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
#152)

Stack sync rebases the prior integration tip onto the new fork/changes
base before compose. Overlay commits that touch the lockfile (e.g. #120)
conflict there; prefer the replayed side via durable commit:\"*\" so
compose can continue and regenerate the integration lock at the end.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Stack conflict recovery kept resolveRemoteVscodeOpenTarget for tests but
dropped the chat-header control that opens Remote SSH worktrees via
vscode://. Wire the button back for non-primary project environments.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…156)

Partial conflict resolutions can keep pure helpers and unit tests while
deleting product chrome (#154 remote Open in VS Code). Export a pure
remote-open gate, add behavior + source existence tests for high-risk
fork surfaces (ChatHeader, list prefs, settled display, queued chips,
short project labels), and document product-conflict rules in AGENTS
and fork-stack docs.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Project grouping kept the FolderPlus control on the Projects header; flat
recency/none had no equivalent. Surface the same trigger next to View &
filters so projects can still be added without switching grouping.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
)

Replace the git-PR icon on classic project and recency/none rows with the
colored mono #number badge from Sidebar V2 so open/merged/closed state stays
scannable without hunting for an icon.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…cs (#161)

Stack sync fails rebasing fork/integration onto fork/changes on AGENTS.md
while replaying overlay #146. Neither pure ours nor pure theirs is safe:
#146 has Discord co-author / always-open-draft rules; #156 has product-
conflict and existence-test rules.

Merge both into fork/changes AGENTS, record durable policies:
- fork/changes AGENTS → theirs (fork layer rewrite)
- fork/integration AGENTS + docs/fork-stack.md → ours (keep complete base)

Local sync --dry-run succeeds with these resolutions.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…#163)

Surface WebSocket close codes and ping timeouts in connection banner text,
and retain short-lived disconnect events in localStorage for later inspection.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Unblock sync onto latest upstream by recording auto-resolve policies for
fork/tim (GitVcsDriverCore test, vcs.ts, BranchToolbar), fork/candidates
(SidebarV2), and fork/changes (ws, CommandPalette, package.json), plus
existing integration AGENTS/lock policies. Local sync --dry-run succeeds.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
@patroza
patroza force-pushed the draft/restore-external-session-import branch from 852178e to 275c04c Compare July 29, 2026 07:19
patroza and others added 2 commits July 29, 2026 09:31
…m conflict (#165)

Blind theirs on fork/tim dropped main's vcs resource-storm fix while
leaving main's vcs tests, so integration Test failed. Restore main's
VCS client/server files and prefer ours for those paths on future Tim
rebases.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
@patroza
patroza force-pushed the draft/restore-external-session-import branch from 275c04c to d7357f0 Compare July 29, 2026 07:32
@patroza
patroza force-pushed the fork/changes branch 8 times, most recently from d650027 to 008bd26 Compare July 29, 2026 20:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request PARKED Draft work intentionally excluded from integration until explicitly resumed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants