8000 T7 — Retained sessions, end to end, with list and show · Issue #2394 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

T7 — Retained sessions, end to end, with list and show #2394

Closed

Description

@mitodrummer

Task

slice size difficulty model who estimated lines
Retained sessions L routine standard an agent 540 (300 code, 240 tests)

every existing session becomes a box record with a stable id, type, parent and the stopped/exited states, and a stop retains it, on today's create path and before any schema change (BOX-001, BOX-003, BOX-011 and BOX-013). On that path no expanded spec reaches the daemon, so the record's type comes from the creating verb, session or task (BOX-001's sub-bullet), and its parent is none. A person sees the records by listing them with their states (BOX-158) and reading one (BOX-159), which BCLI-001 and BCLI-003, pulled forward into this slice, render. Creation then sends and stores the expanded spec (BOX-068), which resume follows (BOX-025).

Covers:

  • none

Layers:

  • cli:
    • crates/minimal/src/cli.rs: min box list, min box show
    • crates/minimal/src/cmd/mod.rs: dispatches list, show
    • crates/minimal/src/cmd/boxes.rs: mod line
    • crates/minimal/src/cmd/boxes/list.rs (new): renders retained records
    • crates/minimal/src/cmd/boxes/show.rs (new): renders one record
    • cargo nextest run -p minimal box_list_and_show_render_retained_records
  • slice:
    • crates/minimald/src/box_manager/tests.rs: tests
    • cargo nextest run -p minimald retained_session_survives_restart_then_lists_reads_and_resumes

Waits on:

Plan block
### T7 — Retained sessions, end to end, with list and show
  slice: S0
 
8000
 kind: integration
  covers: none
  size: L
  est: 300 code, 240 tests
  executor: agent
  difficulty: routine
  model: standard
  diagnostics: daemon log names each record's state at restart
  observability: one span covers whole slice
  layers:
    - cli:
      - crates/minimal/src/cli.rs: `min box list`, `min box show`
      - crates/minimal/src/cmd/mod.rs: dispatches list, show
      - crates/minimal/src/cmd/boxes.rs: mod line
      - crates/minimal/src/cmd/boxes/list.rs (new): renders retained records
      - crates/minimal/src/cmd/boxes/show.rs (new): renders one record
      test: cargo nextest run -p minimal box_list_and_show_render_retained_records
    - slice:
      - crates/minimald/src/box_manager/tests.rs: tests
      test: cargo nextest run -p minimald retained_session_survives_restart_then_lists_reads_and_resumes
  produces:
    - crates/minimal/src/cmd/boxes/list.rs (entry point)
    - crates/minimal/src/cmd/boxes/show.rs (entry point)
  consumes:
    - crates/minimal/src/cmd/boxes.rs
  proof: every existing session becomes a box record with a stable id, type, parent and the `stopped`/`exited` states, and a stop retains it, on today's create path and before any schema change (BOX-001, BOX-003, BOX-011 and BOX-013). On that path no expanded spec reaches the daemon, so the record's type comes from the creating verb, `session` or `task` (BOX-001's sub-bullet), and its `parent` is none. A person sees the records by listing them with their states (BOX-158) and reading one (BOX-159), which BCLI-001 and BCLI-003, pulled forward into this slice, render. Creation then sends and stores the expanded spec (BOX-068), which resume follows (BOX-025).
  depends on:
    - blocked by #2375
    - blocked by #2380
    - blocked by #2383
    - blocked by #2381
    - blocked by #2376
    - blocked by #2377
    - blocked by #2378
    - blocked by #2379
    - blocked by #2385
    - blocked by #2386
    - blocked by #2387
    - blocked by #2389
    - blocked by #2390
    - blocked by #2391
    - blocked by #2392
    - blocked by #2384
    - blocked by #2388
    - blocked by #2393

Activity

  1. added
    kind:taskA task the plan skill rendered; the body carries ## Task
    size:L500 to 900 net lines; one PR, and the ceiling
    model:standardA standard model: work that needs care, or routine work that is large
    plan:integrationOwns the seam of a slice; its proof is the slice's observable
    on Oct 19, 2026
  2. minimal-foundry commented on Oct 29, 2026

    @minimal-foundry
    Contributor

    Done. #2753 merged.

    branch agent/2394-retained-sessions-end-to-end-with-list-and-show · epic #2236 · PR #2753

    round outcome job
    1 pushed 5a6d466c
    2 pushed 96aae3b2
    3 pushed edcf17f3

    Updated 2026-10-30T04:21:15.092Z.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:taskA task the plan skill rendered; the body carries ## Taskmodel:standardA standard model: work that needs care, or routine work that is largeplan:integrationOwns the seam of a slice; its proof is the slice's observablesize:L500 to 900 net lines; one PR, and the ceiling

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0