Correct Diabaig runtime evidence to show a dungeon gameplay frame #675
Labels
No labels
accessibility
bug
category:ai-tool
category:browser
category:command-line-tool
category:compiler-toolchain
category:desktop-application
category:developer-tool
category:editor-extension
category:emulator
category:font
category:game
category:input-accessibility
category:library-framework
category:mud-client
category:multimedia
category:networking-client
category:programming-language
category:roguelike
category:storage-media-tool
category:system-tool
category:terminal-application
complexity:high
complexity:low
complexity:medium
difficulty:blocked
difficulty:easy
difficulty:hard
difficulty:moderate
documentation
duplicate
enhancement
good first issue
gooflow:guix-package-high
gooflow:guix-package-moderate
gooflow:guix-package-quality-gates
gooflow:guix-research-disposition
gooflow:guix-runtime-evidence-refresh
help wanted
invalid
kind:disposition
kind:packaging
needs:license-investigation
priority:quick
question
ready-for-agent
state:available-elsewhere
state:blocked
state:deferred
state:out-of-scope
state:ready
state:research
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
tay/guix-channel#675
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Goocastle delivered
diabaigin #674, including a safe PTY proof and screenshot. The final committed evidence artifact shows the interactive class-selection screen rather than the meaningful dungeon gameplay frame required by the research disposition for #329.The packaged
tay/packages/diabaig-smoke.pydrives a real new-game, movement, inventory, save/load, and quit flow. Its currentraw_framecapture begins from a cumulative startup buffer, so terminal rendering can retain the class-selection screen even after the smoke run reaches a dungeon.Acceptance criteria
.goocastle/evidenceshow an actual dungeon gameplay frame with the player glyph and live game state.DIABAIG_RUNTIME_OKassertions.Evidence
Imported from GitHub issue/PR. Originally posted by htayj on 2026-09-02T20:55:43Z.
Goocastle recorded disposition: blocked.
Blocked by the duplicate-delivery rule: the local channel already contains the intended canonical project as package module tay/packages/diabaig.scm (package diabaig), introduced by commit
bf8b2c670e, and the closed delivery is issue #674 as recorded by the runtime contract in .goocastle/runtime-evidence-contracts.json. The delivered artifact .goocastle/evidence/issue-674.png was visually inspected and shows the class-selection screen, not dungeon gameplay; the package-owned PTY driver tay/packages/diabaig-smoke.py captures a cumulative startup buffer, while tests/diabaig-smoke.sh asserts floor: and @ in the raw capture. The smallest provenance-preserving correction would retain the real isolated PTY/save-load/cleanup flow and capture a fresh post-class gameplay redraw (clear the startup buffer before the dungeon-state frame, then render that frame), with visual acceptance requiring the player @ plus live floor: and hp: state and no class-selection prompt. The canonical upstream is https://github.com/conornally/diabaig at fixed revision b90d35847070d3de27d4656b3316e0e932884b25 (version 1.0.1); that exact checkout has an MIT License, no Git submodules, and Makefile metadata for GCC, xxd, ncurses, and libm, so the source is legally redistributable and source-buildable in principle. Issue #675 requests correction of an already delivered equivalent, not a materially distinct upstream update or separately justified variant, so a second delivery ticket is unsafe. Unblock only by reopening/amending #674 or specifying a materially distinct upstream revision/version or separately justified variant requiring a new package outcome. The research host has no Guix daemon and its capability boundary forbids guix shell, so no package proof is claimed; build assessment is from authoritative source metadata.Imported from GitHub comment. Originally posted by htayj on 2026-09-02T21:09:06Z.
The remediation is now tracked as #676 and will run through guix-package-quality-gates. It corrects the package-owned capture path and requires a fresh, visually inspected dungeon gameplay artifact; #675 remains the terminal research record.
Imported from GitHub comment. Originally posted by htayj on 2026-09-02T21:12:51Z.
Implemented and published in signed, Guix-authenticated commit
3281b08243using OMP orchestration.The smoke now preserves the unmodified 80×34 PTY dungeon redraw plus the actual movement update. Removed the lossy row/cursor rewriting; a real xterm replay shows exactly one player @, full dungeon and controls, floor:1 and hp:500/500, and no class-selection menu. The shell proof uses coreutils timeout and an unprivileged network namespace directly, with isolated HOME/XDG, scratch cleanup and unchanged NAR/read-only store assertions.
Verified 2026-09-29:
guix build -L guix --no-grafts --no-offload --cores=2 --max-jobs=1 diabaig--check: reproducibleguix lint -L guix --no-network --exclude=cve,refresh,archival diabaig: no Diabaig findings (an unrelated in-progress module warning was reported)tests/diabaig-smoke.sh /gnu/store/jqa5ivlkpfdnrfym4ryri380vwzsj12i-diabaig-1.0.1:DIABAIG_RUNTIME_OK; real new-game/move/inventory/save/load/quit and store-integrity assertions passed__omp_shell("Verified dungeon gameplay frame")
PNG SHA256:
f853dcf4e6fda476a11b911ce697edae2a2185ac0770d53238a0e4caf641dfaa.Raw PTY SHA256:
0383f8f477f5d026cd1f373de52b83eedfdcfc40a26cae4a352d204e41dae2fc.The final proof/capture used OMP calls, real xterm/Xvfb and ImageMagick, not Goocastle. Disclosure: an implementation subagent initially violated the no-Goocastle instruction by invoking its old bounded-validation helper; that run is not the proof of record and the dependency was removed before the independently executed final gates. No live user terminal/profile or host services changed.