Skip to content

feat(tui): add interactive session migration - #5

Merged
TheViniAlmeida merged 1 commit into
nextfrom
feat/interactive-migration
Oct 10, 2026
Merged

TheViniAlmeida merged 1 commit into
nextfrom
feat/interactive-migration

Conversation

@TheViniAlmeida

Copy link
Copy Markdown
Owner

The optional smigrate tui command lets users choose root-qualified source and destination profiles, search and page session metadata, preview the selected history, prepare a transfer, and confirm it through the shared migration core. It keeps the existing CLI behavior and stdlib-only core; Textual 8.2.8 is installed only through the tui extra.

The workflow preserves the reserved target ID, rejects changed source/options before publication, supports cancellation until publication starts, and continues observing native verification after that boundary. Preview text is literal, tools start folded, media is metadata only, and cancellation/deadlines cover the authoritative native export. Physical inputs use bounded immutable snapshots; OpenCode/Kilo enforce the selected export cap before parsing. Shared Hermes/MastraCode/Devin database reads retain the documented conservative metadata preflight rather than claiming an atomic selected-session cap.

This release creates new sessions. Target title override, session updates, handoffs, summaries, and the optional web dashboard remain separate roadmap phases.

Validation: local core suite 1958 passed/57 skipped; optional-extra suite 2007 passed/55 skipped on the final runtime. Ten regression cases added after full-suite collection are covered by the final installed-wheel gate: 153 passed, zero skips (all UI/preview/cancellation/native-UI cases). Ruff, formatting, diff checks, lock checks, wheel/sdist build, lazy core/extra smoke, and package/source byte comparisons passed. Independent review approved the final candidate: 278 focused tests with zero skips, 32 threat checks across eight entrypoints, FIFO/symlink race probes, and lint/format/diff checks passed. Exact-head CI remains the merge gate. New CI exercises the optional UI on Python 3.11–3.13 and keyboard/native composition with stock OpenCode 2.0.23; the native jobs reject skips. The OpenCode endpoints use public import/export. Claude/Codex UI outputs are parsed and composed with the existing exact-client cold-resume gates.

Kimi snapshots preserve the existing absolute homedir validation against the original source. Relative homedir metadata retains the legacy adapter policy and does not select read paths; the bounded reader uses only fixed authoritative paths with containment checks.

@TheViniAlmeida
TheViniAlmeida merged commit d8c8f20 into next Oct 10, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant