8000 T8 — Remove and prune stopped boxes on purpose · Issue #2395 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

T8 — Remove and prune stopped boxes on purpose #2395

Closed

Description

@mitodrummer

Task

slice size difficulty model who estimated lines
Reclaim on purpose L needs care strongest an agent 740 (320 code, 420 tests)

remove one stopped box, or prune the stopped and exited boxes older than a day, and see each record, its events and its files gone, while removing a running box is refused unless forced.

Covers:

  • BOX-019
  • BOX-021
  • BOX-024
  • BOX-045

Layers:

  • daemon:
    • crates/minimald/src/box_manager.rs: reap, prune, forced destroy, releases holds
    • crates/minimald/src/box_manager/tests.rs: tests
    • crates/minimald/src/rpc.rs: reap, prune handlers
    • crates/boxes/src/store.rs: deletes events with record
    • cargo nextest run -p minimald rm_deletes_record_and_filesystem
    • cargo nextest run -p minimald reap_running_box_unforced_refuses
    • cargo nextest run -p minimald forced_reap_stops_then_deletes
    • cargo nextest run -p minimald prune_selectors_reap_and_print
    • cargo nextest run -p minimald no_automatic_reaper_runs
    • cargo nextest run -p minimald events_survive_stop_deleted_on_rm
    • cargo nextest run -p minimald reap_hands_name_to_retained_holder
  • docs:
  • wire:
    • crates/minimald-rpc/src/lib.rs: reap, prune requests
    • crates/minimald-rpc/src/tests.rs: tests
    • cargo nextest run -p minimald-rpc reap_and_prune_requests_round_trip

Widened by the maintainer (2026-11-01): #2041 was decided (#2041 (comment)). The NET terms paragraph and the NET-010/NET-012 edits land with this task. The reap runs today's destroy teardown (destroy_now), which withdraws the name, frees the loopback grant and withdraws the VM creation. When the reaped box holds the name's registry row and another retained record carries the same name, the row passes to that record (A or NODATA), not to NXDOMAIN (NET-012's last-holder rule). reap_hands_name_to_retained_holder pins that.

Waits on:

Plan block
### T8 — Remove and prune stopped boxes on purpose
  slice: S1
  kind: task
  covers: BOX-019, BOX-021, BOX-024, BOX-045
  size: L
  est: 320 code, 420 tests
  executor: agent
  difficulty: needs care
  model: strongest
  diagnostics: daemon log names each reaped or refused box
  observability: one span per removal or prune
  layers:
    - daemon:
      - crates/minimald/src/box_manager.rs: reap, prune, forced destroy, releases holds
      - crates/minimald/src/box_manager/tests.rs: tests
      - crates/minimald/src/rpc.rs: reap, prune handlers
      - crates/boxes/src/store.rs: deletes events with record
      test: cargo nextest run -p minimald rm_deletes_record_and_filesystem
      test: cargo nextest run -p minimald reap_running_box_unforced_refuses
      test: cargo nextest run -p minimald forced_reap_stops_then_deletes
      test: cargo nextest run -p minimald prune_selectors_reap_and_print
      test: cargo nextest run -p minimald no_automatic_reaper_runs
      test: cargo nextest run -p minimald events_survive_stop_deleted_on_rm
      test: cargo nextest run -p minimald reap_hands_name_to_retained_holder
    - docs:
      - docs/specs/18-spec-box-networking/18-spec-box-networking.md: terms paragraph and NET-010/NET-012 edits per #2041
    - wire:
      - crates/minimald-rpc/src/lib.rs: reap, prune requests
      - crates/minimald-rpc/src/tests.rs: tests
      test: cargo nextest run -p minimald-rpc reap_and_prune_requests_round_trip
  produces: none
  consumes: none
  proof: remove one stopped box, or prune the stopped and exited boxes older than a day, and see each record, its events and its files gone, while removing a running box is refused unless forced.
  depends on:
    - blocked by #2394

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:strongestThe strongest model available: unknown ground, or large work that needs care
    on Oct 19, 2026
  2. minimal-foundry commented on Nov 1, 2026

    @minimal-foundry
    Contributor

    Done. #2833 merged.

    branch agent/2395-remove-and-prune-stopped-boxes-on-purpose · epic #2236 · PR #2833

    round outcome job
    1 refused: T8 is blocked by #2041 in another repository, which this installation cannot read. Close it by hand or drop the edge.
    1 pushed 48bf2e60
    2 pushed 9919ed6f
    3 pushed bbaedd87

    Updated 2026-11-02T00:25:41.897Z.

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:strongestThe strongest model available: unknown ground, or large work that needs caresize: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