feat(demo): refuse an event step at save with demoRefuses (MODULE_API 1.19.0) #224
Reference in New Issue
Block a user
No description provided.
Delete Branch "feature/demo-step-refusal"
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?
Core half of the public demo's step 2 (#222,
docs/website/DEMO_MODE.md§3.4 and §10). Decision DM18 (org lead, 2026-10-24): a new core hook, because core's event save never asked a module about a step's params. Without it, the console-command deny list could not refuse at save.What it does
demoRefuses(params): a new, optional event-action member.null.DEMO_MODE=true,POST /admin/events,PUT /admin/events/:idandPOST /admin/events/:id/publishask it for every step.403 { code: "DEMO_LOCKED", message, errors: [message] }.codeandmessagethrough, so the client's oneDEMO_LOCKEDtoast fires for a step refusal, as it does for a route lock.MODULE_API_VERSIONis 1.19.0 in both halves, and the OpenAPIDemoLockedschema documentserrors.The first user is Module-Rust's console-command deny list (its PR follows, pinned to this branch).
Verified
npm test(server): 2213 pass, 0 fail, 99 skipped (the live-DB suites), withMODULES_DIRpointed away from a localmodules/checkout.npm test(client): 435 pass.test/demoStepRefusal.test.jscovers:DEMO_MODE=trueand Module-Rustfeat/demo-modeinstalled:quitis refused at create ("quit" is turned off on the demo site.);global.restartis refused;say hisaves;o.unload RunicGatewayis refused.routes.manifest.json: no change.engagement-triggers.jsonregenerated (it embeds the API version).Docs
RunicGateway/docs PR on
docs/demo-mode-module: MODULE_API.md 1.19.0, DEMO_MODE.md DM18, BACKEND_DESIGN.md §5.1.🤖 Generated with Claude Code
https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY