Missing events: Transform emits none and does not count steps; SetController, Hide, Detach and vars emit nothing #18

Closed
opened 2026-10-06 15:14:33 +08:00 by Breadway · 2 comments
Owner

How it was found

Code review of the omniastra repo (findings supplied by the user, 2026-10-06). No file:line given. Not re-verified by me in this session.

Confidence it is a bug

Medium. Clear from reading, but whether silence is intended for these effects is a design question.

Explanation

Transform has no event and does not count toward steps. SetController, Hide, Detach and variable changes emit no events either. Triggers cannot react to them and step limits do not bound loops through them.

Suggested fix

Emit events for these effects and count them as steps, or document them as intentionally silent.

## How it was found Code review of the omniastra repo (findings supplied by the user, 2026-10-06). No file:line given. Not re-verified by me in this session. ## Confidence it is a bug Medium. Clear from reading, but whether silence is intended for these effects is a design question. ## Explanation `Transform` has no event and does not count toward steps. `SetController`, `Hide`, `Detach` and variable changes emit no events either. Triggers cannot react to them and step limits do not bound loops through them. ## Suggested fix Emit events for these effects and count them as steps, or document them as intentionally silent.
Author
Owner

Fixed on local branch fix/review-findings in 5562b2f (not pushed yet), with a design decision for you to confirm: I did not add new event kinds (the observation has a fixed 32-slot event vocabulary and new kinds would change every game's history). Instead Transform, SetController, Hide, Detach, Reveal and Attach now spend a step per object (so the step budget bounds them), and the silent effects (Transform, SetController, Hide, Detach, SetVar, ModVar) are documented as intentionally silent in ir.rs and DESIGN.md. Test transform_spends_steps_so_it_cannot_dodge_the_budget fails on the old code. If you want events for them, that is a follow-up.

Fixed on local branch fix/review-findings in 5562b2f (not pushed yet), with a design decision for you to confirm: I did not add new event kinds (the observation has a fixed 32-slot event vocabulary and new kinds would change every game's history). Instead Transform, SetController, Hide, Detach, Reveal and Attach now spend a step per object (so the step budget bounds them), and the silent effects (Transform, SetController, Hide, Detach, SetVar, ModVar) are documented as intentionally silent in ir.rs and DESIGN.md. Test transform_spends_steps_so_it_cannot_dodge_the_budget fails on the old code. If you want events for them, that is a follow-up.
Author
Owner

Decision recorded: keep these effects silent and documented, with step accounting (already in the PR). Reasons: new EventKinds would shift the fixed 32-slot event vocabulary in the observation and change every game's history, and no current game or generator has a trigger on Transform, SetController, Hide, Detach or variable changes. Revisit if a game family needs such triggers. Included in PR #25.

Decision recorded: keep these effects silent and documented, with step accounting (already in the PR). Reasons: new EventKinds would shift the fixed 32-slot event vocabulary in the observation and change every game's history, and no current game or generator has a trigger on Transform, SetController, Hide, Detach or variable changes. Revisit if a game family needs such triggers. Included in PR #25.
Sign in to join this conversation.
No labels
bug
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
Breadway/omniastra#18
No description provided.