Skip to content

T-229: V003 migration terminal_sessions table #124

@mpiton

Description

@mpiton

Goal

Add V003__terminal_sessions.sql migration creating the terminal_sessions table per ARCHI §11.4 so future sprints can serialise xterm scrollback + metadata across restarts. This sprint only creates the table; the actual write path lands in a follow-up issue (see T-237 risks).

Columns mirror ARCHI sample: id, project_id (FK projects), cwd, shell_program, cols, rows, serialize_buffer (BLOB, optional), created_at, updated_at.

Acceptance criteria

  • New file src-tauri/src/infrastructure/persistence/migrations/V003__terminal_sessions.sql
  • CREATE TABLE IF NOT EXISTS terminal_sessions with all columns + indexes (idx_terminal_sessions_project)
  • project_id foreign key references projects(id)
  • pool::migrate runs V003 in-order without panicking on a fresh DB
  • Existing DBs receive V003 idempotently (no drop, no data loss)
  • Migration smoke test in pool.rs runs all migrations against in-memory libsql and asserts terminal_sessions exists
  • No regression on V001/V002 tests

Files to create/modify

  • create src-tauri/src/infrastructure/persistence/migrations/V003__terminal_sessions.sql
  • modify src-tauri/src/infrastructure/persistence/pool.rs (migration list)

References

  • ARCHI.md §8 Modèle de données
  • ARCHI.md §11.4 Persistence
  • Existing V001/V002 patterns

Dependencies

None — can run in parallel with T-227.

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority:P0Priority P0 — must land in sprintscope: infrainfrastructure/ adapters (libsql, git2, pty, etc.)sprint:2026-05-14Sprint 2026-05-14 (Sprint 3) — terminals & PTY foundationtrack:ATrack A — backend (Rust domain/application/infra)type:featureFeature work (new capability)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions