8000 T20 — End an until-complete box at its timeout, and rerun activation hooks on resume when asked · Issue #2415 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

T20 — End an until-complete box at its timeout, and rerun activation hooks on resume when asked #2415

Open

Description

@mitodrummer

Task

slice size difficulty model who estimated lines
One minimal.toml for every box M needs care standard an agent 400 (220 code, 180 tests)

A task past its timeout ends exited with reason timeout.

Covers:

  • BOX-028
  • BOX-037

Layers:

  • spec:
    • crates/mfile/src/spec.rs: resume-hooks key
    • cargo nextest run -p mfile spec_carries_hooks_on_resume
  • runtime:
    • crates/minimald/src/box_runtime.rs: timeout TERM then KILL
    • crates/minimald/src/box_runtime/tests.rs: tests
    • cargo nextest run -p minimald until_complete_timeout_terms_then_kills_box_and_execs_reason_timeout
  • hooks:
    • crates/minimald/src/hooks.rs: reruns activation hook
    • crates/minimald/src/box_actor/tests.rs: tests
    • cargo nextest run -p minimald hooks_on_resume_reruns_on_activate

Waits on:

Plan block
### T20 — End an until-complete box at its timeout, and rerun activation hooks on resume when asked
  slice: S4
  kind: task
  covers: BOX-028, BOX-037
  size: M
  est: 220 code, 180 tests
  executor: agent
  difficulty: needs care
  model: standard
  diagnostics: daemon log names timeout kills
  observability: exited event carries reason timeout
  layers:
    - spec:
      - crates/mfile/src/spec.rs: resume-hooks key
      test: cargo nextest run -p mfile spec_carries_hooks_on_resume
    - runtime:
      - crates/minimald/src/box_runtime.rs: timeout TERM then KILL
      - crates/minimald/src/box_runtime/tests.rs: tests
      test: cargo nextest run -p minimald until_complete_timeout_terms_then_kills_box_and_execs_reason_timeout
    - hooks:
      - crates/minimald/src/hooks.rs: reruns activation hook
      - crates/minimald/src/box_actor/tests.rs: tests
      test: cargo nextest run -p minimald hooks_on_resume_reruns_on_activate
  produces: none
  consumes: none
  proof: A task past its timeout ends exited with reason timeout.
  depends on:
    - blocked by #2407
    - blocked by #2410

Activity

  1. added
    kind:taskA task the plan skill rendered; the body carries ## Task
    size:M200 to 500 net lines; one PR
    model:standardA standard model: work that needs care, or routine work that is large
    on Oct 19, 2026
  2. minimal-foundry commented on Nov 6, 2026

    @minimal-foundry
    Contributor

    Round 1 of 10 changed nothing: This round changes nothing. The branch keeps the spec layer commit 5e3e674. The runtime and hooks layers cannot be done inside the files that the layers name, so I left them undone and did not widen the diff. Runtime layer (BOX-037): (1) box_actor.rs writes the exited state at about line 1716, and that write is hardwired to ExitEnding::Exit. A timeout ending needs a change there. (2) box_actor/host.rs builds HostParams at about line 1226, so a timeout value cannot reach box_runtime.rs without a change there. (3) The daemon BoxSpec in crates/mfile/src/spec.rs has no timeout field. Only crates/mfile/src/expand.rs carries timeout, as a string such as "2h". The spec.rs layer note covers the resume-hooks key only. Hooks layer (BOX-028): the resume decision is in box_actor.rs (resume, resume_ended), and activation hooks run from box_actor/setup.rs and box_actor/host.rs (run_session_hooks, has_hooks_for). hooks.rs can hold a helper, but no file in the layers can call it on resu…[truncated]. #3104 is still open.

    branch agent/2415-end-an-until-complete-box-at-its-timeout-and-rer · epic #2236 · PR #3104

    round outcome job
    1 changed nothing: This round changes nothing. The branch keeps the spec layer commit 5e3e674. The runtime and hooks layers cannot be done inside the files that the layers name, so I left them undone and did not widen 83b2dfcb

    Updated 2026-11-06T19:48:52.566Z.

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 largesize:M200 to 500 net lines; one PR

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0