fix(second-wind): prevent stale native healing replay #10

Merged
dmg merged 1 commits from us-031-recover-with-second-wind into main 2026-10-08 12:55:11 +00:00
Owner

US-031 / FS-SEC-13

Canonical story

Prevent delayed Second Wind publication from erasing intervening native damage. Revalidate native health/maximum, character revision and session; persist an operation-bound load barrier before provisional health; reconcile only exact owned saved state and retire proof only after confirmed publication/reconciliation. Uncertain proof blocks later entry/restart without replay or automatic deletion. Preserve cooldowns, newer writes, accepted healing budget and truthful feedback/audit outcomes. Document fail-closed recovery and downgrade limits.

Verification

  • Tested head: f2f0dd742f79a2539da871619d8febfa8597de9e
  • Tested tree: 2f2263eb04b2efe8e141a869b20a5eda407ce1d7
  • Current tested base: c0b539364627d77c841071577732103441474706
  • Retained meaningful RED: registered delayed native damage published16 instead of5; float accepted-budget and duplicate reconciliation callback failures.
  • Affected:78 native,453 API and55 tools pass, including18 Second Wind native and6 durable persistence cases.
  • Fresh full ./gradlew clean check jar: 2,378 tests (1,870 native/453 API/55 tools), zero failures/errors/skips,16m30s.
  • All651 source inputs and110 pinned native-runtime JAR hashes unchanged. Diff check passes. Private logs/reports/manifests: /tmp/us031-resumption/.
  • All668 existing native SEVERE first-cause signatures match verified main; none suppressed. This is not blanket listener/security clearance.

Inherited implementation was preserved and integrated onto current main after explicit operator handoff; no further source changes were necessary. Earlier failed gates remain recorded in the story, not retrospectively claimed as passing.

Boundaries

Six story-owned files only. No formula/balance/configuration, timeout, runner, CI or GitOps changes. CI is packaging-only; full local proof above remains mandatory. Operator approved this session's US-031-only integration; merge requires actual current-head checks, unchanged base, and fetched tested-tree equality before marking done. Push/merge can trigger CI/releases, not deployment. Final-plugin security review and unrelated remediation/delivery holds remain. Stop after this story.

## US-031 / FS-SEC-13 [Canonical story](https://git.garvis.dev/dmg/somc-okf/src/branch/main/user-stories/purpur-fantasy-stick/us-031-recover-with-second-wind.md) Prevent delayed Second Wind publication from erasing intervening native damage. Revalidate native health/maximum, character revision and session; persist an operation-bound load barrier before provisional health; reconcile only exact owned saved state and retire proof only after confirmed publication/reconciliation. Uncertain proof blocks later entry/restart without replay or automatic deletion. Preserve cooldowns, newer writes, accepted healing budget and truthful feedback/audit outcomes. Document fail-closed recovery and downgrade limits. ## Verification - Tested head: `f2f0dd742f79a2539da871619d8febfa8597de9e` - Tested tree: `2f2263eb04b2efe8e141a869b20a5eda407ce1d7` - Current tested base: `c0b539364627d77c841071577732103441474706` - Retained meaningful RED: registered delayed native damage published16 instead of5; float accepted-budget and duplicate reconciliation callback failures. - Affected:78 native,453 API and55 tools pass, including18 Second Wind native and6 durable persistence cases. - Fresh full `./gradlew clean check jar`: **2,378 tests** (1,870 native/453 API/55 tools), zero failures/errors/skips,16m30s. - All651 source inputs and110 pinned native-runtime JAR hashes unchanged. Diff check passes. Private logs/reports/manifests: `/tmp/us031-resumption/`. - All668 existing native SEVERE first-cause signatures match verified main; none suppressed. This is not blanket listener/security clearance. Inherited implementation was preserved and integrated onto current main after explicit operator handoff; no further source changes were necessary. Earlier failed gates remain recorded in the story, not retrospectively claimed as passing. ## Boundaries Six story-owned files only. No formula/balance/configuration, timeout, runner, CI or GitOps changes. CI is packaging-only; full local proof above remains mandatory. Operator approved this session's US-031-only integration; merge requires actual current-head checks, unchanged base, and fetched tested-tree equality before marking done. Push/merge can trigger CI/releases, **not deployment**. Final-plugin security review and unrelated remediation/delivery holds remain. Stop after this story.
dmg added 1 commit 2026-10-08 12:53:22 +00:00
fix(second-wind): prevent stale native healing replay
CI / build (push) Successful in 56s
CI / build (pull_request) Successful in 49s
f2f0dd742f
dmg merged commit 7b6ea939a5 into main 2026-10-08 12:55:11 +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#10