Skip to content

AUDIT-014: close stale screen pause lifecycle - #15

Open
Hylfrd wants to merge 5 commits into
masterfrom
codex/audit-screen-pause-lifecycle
Open

Hylfrd wants to merge 5 commits into
masterfrom
codex/audit-screen-pause-lifecycle

Conversation

@Hylfrd

@Hylfrd Hylfrd commented Aug 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • Route the authoritative Minecraft#setScreen(Screen) TAIL boundary through a shared client screen lifecycle adapter.
  • Make non-chat screen opens terminal SCREEN_OPEN ownership boundaries, including macro stop, transient inventory/task/rotation/input cleanup, and settings-save precondition reconciliation.
  • Preserve only the exact command-armed chat close exemption and add focused inventory, pause, settings, lifecycle, and idempotence coverage.
  • Record exact AUDIT-014 base, parent P0-13/P0-15 failures, upstream anchors, file hashes, and verification evidence.

Root cause

The current-master screen observer did not receive the real setScreen mutation boundary as a terminal event. Non-chat transitions remained SCREEN_CHANGED, whose macro fanout is state-preserving, leaving SCREEN_OPEN stale after real inventory and Escape flows.

Validation

  • Java 25.0.3 / Gradle 9.5.1 isolated worktree temp home / --no-daemon
  • Focused lifecycle suite: 17 tests passed
  • Full test: 687 tests, 0 failures, 0 errors, 0 skipped
  • check, validateAccessWidener (NO-SOURCE), and dependency provenance passed
  • Two clean builds passed
  • Deterministic JAR audit passed: SHA-256 0719FDB2AEDF54B74331C3F449B01707092D88053B8DF6394891DA3D96F8C821, 893721 bytes, 500 entries

Parent-owned real-client P0-13/P0-15 rerun remains the distinct post-publication validation boundary described in AUDIT-014.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant