Correct Diabaig runtime evidence to show a dungeon gameplay frame #676

Closed
opened 2026-09-02 21:12:50 +00:00 by htayj · 3 comments
htayj commented 2026-09-02 21:12:50 +00:00 (Migrated from github.com)

Context

This is a bounded evidence-remediation delivery for closed package issue #674, discovered by research issue #675. The package and its safe PTY save/load proof are valid, but the committed final screenshot for #674 presents the startup class-selection screen rather than the meaningful dungeon gameplay frame promised by the #329 research contract.

The concrete fault is in tay/packages/diabaig-smoke.py: raw_frame begins with a cumulative startup buffer. The PTY flow subsequently reaches a dungeon, performs movement, inventory, save/load, and quit, and asserts dungeon content in raw capture, but terminal rendering may preserve the older class-selection screen. Correct the capture so the committed runtime artifact records a fresh post-class dungeon redraw.

The reviewed runtime-evidence contract for this delivery is committed in .goocastle/runtime-evidence-contracts.json at issue number 676. This delivery must retain the canonical Diabaig package identity, upstream provenance, isolated HOME/XDG/TMPDIR flow, save/load/cleanup checks, store-integrity assertion, and DIABAIG_RUNTIME_OK marker from #674.

Acceptance criteria

  • Make the smallest package-owned change needed for the captured terminal stream to render an actual dungeon gameplay frame after class selection.
  • Preserve the real packaged PTY flow, movement, inventory, save, load, quit, cleanup, and all existing safety isolation assertions.
  • The committed .goocastle/evidence/issue-676.png must visibly show the player glyph @, a live dungeon floor: and hp: state, and no class-selection prompt.
  • Run the full safe-package proof and runtime-screenshot Gooflow phases against diabaig; do not treat an earlier #674 proof or a smoke marker alone as sufficient.

Candidate

Modify only the package-owned Diabaig smoke/capture path and its focused test evidence as necessary. Do not change upstream source revision, license, package name, or substitute a synthetic/non-package screenshot.

Scope and blockers

In scope: evidence capture correctness and any directly necessary focused test/update. Out of scope: a new package, an upstream update, relaxing the runtime contract, or weakening the proof. No external blocker is known.

Acceptance checks

  • make check-source-count passes.
  • The isolated diabaig package proof, lint, no-grafts build, reproducibility check, smoke test, and store write check pass through the Gooflow proof phase.
  • The rendered PNG is visually inspected after capture and satisfies the explicit dungeon-frame criterion.
  • The delivery is signed, pushed, and the GitHub evidence comment identifies the exact artifact and verified runtime invocation.

Imported from GitHub issue/PR. Originally posted by htayj on 2026-09-02T21:12:50Z.

## Context This is a bounded evidence-remediation delivery for closed package issue #674, discovered by research issue #675. The package and its safe PTY save/load proof are valid, but the committed final screenshot for #674 presents the startup class-selection screen rather than the meaningful dungeon gameplay frame promised by the #329 research contract. The concrete fault is in tay/packages/diabaig-smoke.py: raw_frame begins with a cumulative startup buffer. The PTY flow subsequently reaches a dungeon, performs movement, inventory, save/load, and quit, and asserts dungeon content in raw capture, but terminal rendering may preserve the older class-selection screen. Correct the capture so the committed runtime artifact records a fresh post-class dungeon redraw. The reviewed runtime-evidence contract for this delivery is committed in .goocastle/runtime-evidence-contracts.json at issue number 676. This delivery must retain the canonical Diabaig package identity, upstream provenance, isolated HOME/XDG/TMPDIR flow, save/load/cleanup checks, store-integrity assertion, and DIABAIG_RUNTIME_OK marker from #674. ## Acceptance criteria - Make the smallest package-owned change needed for the captured terminal stream to render an actual dungeon gameplay frame after class selection. - Preserve the real packaged PTY flow, movement, inventory, save, load, quit, cleanup, and all existing safety isolation assertions. - The committed .goocastle/evidence/issue-676.png must visibly show the player glyph @, a live dungeon floor: and hp: state, and no class-selection prompt. - Run the full safe-package proof and runtime-screenshot Gooflow phases against diabaig; do not treat an earlier #674 proof or a smoke marker alone as sufficient. ## Candidate Modify only the package-owned Diabaig smoke/capture path and its focused test evidence as necessary. Do not change upstream source revision, license, package name, or substitute a synthetic/non-package screenshot. ## Scope and blockers In scope: evidence capture correctness and any directly necessary focused test/update. Out of scope: a new package, an upstream update, relaxing the runtime contract, or weakening the proof. No external blocker is known. ## Acceptance checks - make check-source-count passes. - The isolated diabaig package proof, lint, no-grafts build, reproducibility check, smoke test, and store write check pass through the Gooflow proof phase. - The rendered PNG is visually inspected after capture and satisfies the explicit dungeon-frame criterion. - The delivery is signed, pushed, and the GitHub evidence comment identifies the exact artifact and verified runtime invocation. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/676). Originally posted by [htayj](https://github.com/htayj) on 2026-09-02T21:12:50Z.
htayj commented 2026-09-02 21:33:26 +00:00 (Migrated from github.com)

Goocastle verified runtime evidence.

Runtime screenshot

Runtime receipt
  • Package: diabaig
  • Safe package proof phase: safe-package-proof
  • Safe package proof argv: ["sh",".goocastle/prove-guix-package.sh"]
  • Screenshot phase: runtime-screenshot
  • Screenshot argv: ["sh",".goocastle/capture-guix-package-screenshot.sh"]
  • Runtime executable (Guix store/profile): /gnu/store/8gvh6vl1b0lyg3cbz8kvd34835fvlxni-diabaig-1.0.1/bin/diabaig
  • Runtime invocation: ["/gnu/store/8gvh6vl1b0lyg3cbz8kvd34835fvlxni-diabaig-1.0.1/bin/diabaig","--smoke"]
  • Expected runtime invocation: ["diabaig","--smoke"]
  • Expected runtime marker: DIABAIG_RUNTIME_OK
  • Per-issue runtime contract: .goocastle/runtime-evidence-contracts.json (issue #676, SHA-256 24aee392e2cb3305405bc0f43796d6d0ae77852fbceb7de34064fa9175fcad73)
  • Artifact path: .goocastle/evidence/issue-676.png
  • Artifact SHA-256: 44a40cb9b041fb4d1adbb4a164ed3babc315c0dd59811748f40ffdad668c884a
  • Artifact commit: 5b255682209617de99c8b3a4d9d22311fb1a7041
  • Artifact size/format: 23423 bytes / png

Imported from GitHub comment. Originally posted by htayj on 2026-09-02T21:33:26Z.

<!-- goocastle-runtime-evidence:sequential-reviewer:676:1:44a40cb9b041fb4d1adbb4a164ed3babc315c0dd59811748f40ffdad668c884a --> Goocastle verified runtime evidence. ![Runtime screenshot](https://github.com/htayj/guix-channel/blob/5b255682209617de99c8b3a4d9d22311fb1a7041/.goocastle/evidence/issue-676.png?raw=1) <details><summary>Runtime receipt</summary> - Package: <code>diabaig</code> - Safe package proof phase: <code>safe-package-proof</code> - Safe package proof argv: <code>[&quot;sh&quot;,&quot;.goocastle/prove-guix-package.sh&quot;]</code> - Screenshot phase: <code>runtime-screenshot</code> - Screenshot argv: <code>[&quot;sh&quot;,&quot;.goocastle/capture-guix-package-screenshot.sh&quot;]</code> - Runtime executable (Guix store/profile): <code>/gnu/store/8gvh6vl1b0lyg3cbz8kvd34835fvlxni-diabaig-1.0.1/bin/diabaig</code> - Runtime invocation: <code>[&quot;/gnu/store/8gvh6vl1b0lyg3cbz8kvd34835fvlxni-diabaig-1.0.1/bin/diabaig&quot;,&quot;--smoke&quot;]</code> - Expected runtime invocation: <code>[&quot;diabaig&quot;,&quot;--smoke&quot;]</code> - Expected runtime marker: <code>DIABAIG_RUNTIME_OK</code> - Per-issue runtime contract: <code>.goocastle/runtime-evidence-contracts.json (issue #676, SHA-256 24aee392e2cb3305405bc0f43796d6d0ae77852fbceb7de34064fa9175fcad73)</code> - Artifact path: <code>.goocastle/evidence/issue-676.png</code> - Artifact SHA-256: <code>44a40cb9b041fb4d1adbb4a164ed3babc315c0dd59811748f40ffdad668c884a</code> - Artifact commit: <code>5b255682209617de99c8b3a4d9d22311fb1a7041</code> - Artifact size/format: <code>23423 bytes / png</code> </details> --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/676#issuecomment-5516727649). Originally posted by [htayj](https://github.com/htayj) on 2026-09-02T21:33:26Z.
htayj commented 2026-09-02 21:33:30 +00:00 (Migrated from github.com)

Completed by Goocastle


Imported from GitHub comment. Originally posted by htayj on 2026-09-02T21:33:30Z.

Completed by Goocastle --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/676#issuecomment-5516728371). Originally posted by [htayj](https://github.com/htayj) on 2026-09-02T21:33:30Z.
htayj commented 2026-09-02 21:40:09 +00:00 (Migrated from github.com)

Post-close audit found that the pre-aed9238 runner skipped required channel-inventory and edge-case-audit after a productive command-budget stop. The runtime evidence remains valid, but #677 will execute and record those missed mandatory gates under the corrected scheduler.


Imported from GitHub comment. Originally posted by htayj on 2026-09-02T21:40:09Z.

Post-close audit found that the pre-aed9238 runner skipped required channel-inventory and edge-case-audit after a productive command-budget stop. The runtime evidence remains valid, but #677 will execute and record those missed mandatory gates under the corrected scheduler. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/676#issuecomment-5516817219). Originally posted by [htayj](https://github.com/htayj) on 2026-09-02T21:40:09Z.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tay/guix-channel#676
No description provided.