Repaired anal-hook-1 in Elara game session 2b8c6d5b-74a4-49c5-9c3d-60c6f98b116c, corrected the corresponding global item template, fixed Active Effects panel description rendering, and restored runtime enforcement of equipped configured item effects for normal and regenerated turns.
state.configuration to current state.setting and corrected the live session setting to Anchor Point while preserving equipped location, owner, condition, and current physical-state context.Anchor Point and Punishment Length match their settings.Free Play; its fullness text is descriptive rather than a mechanical active effect.Deployed EventHorizon commit 18f1b6d.
Deployed EventHorizon commit 75f2a6c.
Root cause: the frontend derived known item effects directly from equipped items, but pre-turn enforcement read only world_state.active_effects. Configured effects were merely used to constrain a passive effect that the background evaluator had already proposed. If that evaluator omitted the effect, it displayed in the panel but never entered rule checking.
The backend now deterministically derives configured mechanical effects from held, wielded, worn, and equipped items before every turn. It:
state.setting plus unconditional mechanical effects;Deployed EventHorizon merge a5a7d2cfb4926a3fe178425fad11356cdf949e57.
Root cause: game-turn regeneration loaded the persisted resolved player action and sent it directly to the narrator. It intentionally did not rerun persona decisions or mutate state, but it also bypassed the effect-enforcement path added for normal turns.
Regeneration now re-enforces the persisted player action against the session's current authoritative structured player effects before narrator rendering. It continues to reuse the persisted persona decisions and does not advance the turn, rerun persona selection, or mutate world state.
anal slot.Anchor Point.Anchor Point record has severity severe and its complete positional-immobilization description.Anchor Point is included while Free Play and the prose-only general heading are excluded.:app:assembleDebug and :app:lintDebug also succeeded for the combined release.build_frontend #2224 and build_and_deploy #2223 succeeded.gitea.app.lan/eventhorizon/eventhorizon:sha-a5a7d2cfb492 successfully./healthz returned healthy.Original pre-change SQL backup: /home/ax_julian/temp/eventhorizon-elara-anal-hook-repair-2026-07-19/pre-repair.sql
SHA-256: 68480aecca4efbbf8e99d359e0542df031d622837e5159afce04af455564de10
Pre-display-label backup: /home/ax_julian/temp/eventhorizon-elara-anal-hook-repair-2026-07-19/pre-display-label-repair.sql
SHA-256: 36171d03ef57c537f4500c6f06700472a37124b975818146573fbe1e8d645055
Deployed EventHorizon merge 68a5d7d17e91 with Gitea runs build_and_deploy #2231 and build_frontend #2232.
Root cause: Anchor Point contained only a prose statement of complete positional immobilization. EventHorizon intentionally requires a typed constraint_basis before treating an effect as a hard capability limit, so the rule checker could interpret a squirm as successful movement and apply the hook only as a later reaction.
Correction:
constraint_basis.kind=mechanical with the tensioned hook-chain tether as the causal source.movement_constraint, affected body parts, and blocked actions for positional displacement, hip/torso shifting, and squirming into a new position.anal-hook-1 template and Elara session 2b8c6d5b-74a4-49c5-9c3d-60c6f98b116c; the selected setting remains Anchor Point.mode=attempt with no successful displacement.Verification:
I squirm in protest regression context.gitea.app.lan/eventhorizon/eventhorizon:sha-68a5d7d17e91; one replica is ready./healthz and /readyz passed.1.0.2231.Backup files:
/home/ax_julian/temp/eventhorizon-anchor-point-hard-enforcement-2026-07-19/elara-world-state-before.json (5a50b94addc16ffc200db8a4139b74aa4bb08cf3c68c77b18125f6bcf0d33849)/home/ax_julian/temp/eventhorizon-anchor-point-hard-enforcement-2026-07-19/item-template-store-before.json (36966bbd2347ac79b44362cbb705cea8e60b03f525deb182bb8c3112e31919ac)/home/ax_julian/temp/eventhorizon-anchor-point-hard-enforcement-2026-07-19/apply.sql (679c32bc1165405d5398fcfaed7c91a95b42c70fbbb97fbe8c886a581977c165)Deployed EventHorizon merge 96db2da6f983 with successful Gitea runs build_and_deploy #2233 and build_frontend #2234.
The earlier hard movement-constraint repair over-specified Anchor Point by adding inferred affected body parts and an enumerated blocked-action list. Those additions were removed from both the canonical template and Elara's live session.
The effect now contributes only:
Complete positional immobilization relative to the tether point., as movement_constraint;constraint_basis.kind=mechanical;constraint_basis.source_item_id=anal-hook-1.The engine therefore enforces the authored effect generally without item-specific action examples in production data. All 205 backend tests passed. Kubernetes rolled out gitea.app.lan/eventhorizon/eventhorizon:sha-96db2da6f983; production health and readiness checks passed.
Pre-correction backups:
/home/ax_julian/temp/eventhorizon-anchor-point-generalization-2026-07-19/elara-world-state-before.json (59ebd70e66de93183e704d1148adcf80eefde554900be5fa1466fd4aaaf52a0d)/home/ax_julian/temp/eventhorizon-anchor-point-generalization-2026-07-19/item-template-store-before.json (38f3c98290112576965ed26703e962422ede563dda877e6a7a5ec840923672e4)/home/ax_julian/temp/eventhorizon-anchor-point-generalization-2026-07-19/apply.sql (6b60fcd2a8fb59cc4b64291074b5c5bb15dd37ce73ac60532a83a31b4459a294)