fix(events): bound diagnostic retirement during shutdown #12

Merged
dmg merged 1 commits from fs-sec-10-bound-diagnostic-retirement into main 2026-10-08 14:01:52 +00:00
Owner

FS-SEC-10: bounded diagnostic retirement

Canonical story (completion publication follows verified merge).

Bound closed feature-outbox diagnostic retirement independently of a stalled aggregate handler. Interrupt the owner's cooperative handler, preserve unrelated owners and durable intent replay, and prevent late closed observations from reviving callbacks or maintenance. Keep late rejections counted without falsely calling them durable/exported/logged. Preserve the existing five-second closing-attempt budget.

Residual: Java cannot safely terminate an interruption-ignoring trusted handler. It may still retain its executing thread/callback/plugin classloader. Bookkeeping retirement and a completed closing attempt are not callback termination or diagnostic-delivery acknowledgments. README and tests explicitly preserve this limit; no forced thread termination or blanket security clearance.

Verification

  • Tested head: 5e5e21374f6bc1c857d8022d2668a8a765c8a3d7
  • Tested tree: a0c9c393d1437ee734343b1fc2a94a08a5b417b8
  • Tested base: 7353436a77458d035dfba6fa22fc3125ae80c737
  • Retained meaningful RED: closed owner's cooperative handler did not receive shutdown interruption.
  • Fresh affected:56 native +456 API +55 tooling pass, including retirement, saturation, replay-progress, packaged lifecycle and previous boss-outbox blocker.
  • Own full ./gradlew clean check jar: 2,387 tests (1,876 native/456 API/55 tools), zero failures/errors/skips,16m59s.
  • All654 source inputs and110 pinned runtime-JAR hashes unchanged. Inherited five Java files preserved byte-for-byte through approved handoff/rebase; only README also integrates newer main documentation.
  • New retirement native suite has zero SEVERE records; all668 existing full-native first-cause signatures match verified main. None suppressed; no blanket listener/security clearance.
  • Logs/reports/manifests: /tmp/fssec10-resumption/; original RED, expanded/full failures and prior scoped scan remain documented in the story.

Boundaries

Six approved files only. The late-after-close capacity-test contract was explicitly approved; exact capacity/durability/original-ID replay assertions and time limits remain. No gameplay, configuration, runner, CI, live-log, GitOps or deployment changes. Remote CI packages; full local test proof above remains mandatory. Operator approved this session's FS-SEC-10-only Gitea integration, subject to current-head checks, unchanged base and fetched tree equality. Merge may publish a release, not deploy it. Other remediation and final-plugin security remain separate; next-story selection requires separate review/approval.

## FS-SEC-10: bounded diagnostic retirement [Canonical story](https://git.garvis.dev/dmg/somc-okf/src/branch/main/user-stories/purpur-fantasy-stick/fs-sec-10-bound-diagnostic-retirement.md) (completion publication follows verified merge). Bound closed feature-outbox diagnostic retirement independently of a stalled aggregate handler. Interrupt the owner's cooperative handler, preserve unrelated owners and durable intent replay, and prevent late closed observations from reviving callbacks or maintenance. Keep late rejections counted without falsely calling them durable/exported/logged. Preserve the existing five-second closing-attempt budget. **Residual:** Java cannot safely terminate an interruption-ignoring trusted handler. It may still retain its executing thread/callback/plugin classloader. Bookkeeping retirement and a completed closing attempt are not callback termination or diagnostic-delivery acknowledgments. README and tests explicitly preserve this limit; no forced thread termination or blanket security clearance. ## Verification - Tested head: `5e5e21374f6bc1c857d8022d2668a8a765c8a3d7` - Tested tree: `a0c9c393d1437ee734343b1fc2a94a08a5b417b8` - Tested base: `7353436a77458d035dfba6fa22fc3125ae80c737` - Retained meaningful RED: closed owner's cooperative handler did not receive shutdown interruption. - Fresh affected:56 native +456 API +55 tooling pass, including retirement, saturation, replay-progress, packaged lifecycle and previous boss-outbox blocker. - Own full `./gradlew clean check jar`: **2,387 tests** (1,876 native/456 API/55 tools), zero failures/errors/skips,16m59s. - All654 source inputs and110 pinned runtime-JAR hashes unchanged. Inherited five Java files preserved byte-for-byte through approved handoff/rebase; only README also integrates newer main documentation. - New retirement native suite has zero SEVERE records; all668 existing full-native first-cause signatures match verified main. None suppressed; no blanket listener/security clearance. - Logs/reports/manifests: `/tmp/fssec10-resumption/`; original RED, expanded/full failures and prior scoped scan remain documented in the story. ## Boundaries Six approved files only. The late-after-close capacity-test contract was explicitly approved; exact capacity/durability/original-ID replay assertions and time limits remain. No gameplay, configuration, runner, CI, live-log, GitOps or deployment changes. Remote CI packages; full local test proof above remains mandatory. Operator approved this session's FS-SEC-10-only Gitea integration, subject to current-head checks, unchanged base and fetched tree equality. Merge may publish a release, not deploy it. Other remediation and final-plugin security remain separate; next-story selection requires separate review/approval.
dmg added 1 commit 2026-10-08 13:58:38 +00:00
fix(events): bound diagnostic retirement during shutdown
CI / build (push) Successful in 56s
CI / build (pull_request) Successful in 2m37s
5e5e21374f
dmg merged commit d4ae188501 into main 2026-10-08 14:01:52 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dmg/purpur-fantasy-stick#12