feat(rust): the kit weekend, linked rewards, reward messages and the kit warning (protocol 14) #38
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/protocol-14-step-editor"
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?
What & why
Module-Rust's half of
PLAN_REDESIGNS.md§2 (D164, D192, D332, D333), on core's MODULE_API 1.13.0 (website#212).rust.template.kit_weekend, through core'sregisterEventTemplates:advance: { after: <minutes> }holding two steps:core.leaseonrust.group.permission, giving<server>/default/<the kit's real permission>the valuetrue, andrust.kit.entitlewithrecipients: linked.rust.kit.entitle:linkedmeans every linked account that has played on the server. It reads no tally, and past the server's bound it is refused with the bound's name, never trimmed.message(with{kit}) anddelivery, checked against the chat bound with the kit's name in place.rust_perm_run_grants.notice,notice_deliveryandnotice_told_at, added as ALTERs.perm.syncnotices: the untold set goes to the account the reward picked, keyedrun:step:userand included in the sync digest. The report'snoticesToldmarks rows told.rust.options.grouppermissionsrows for a kit's permission carry anote, built fromkits.useswith the server's linked players. It is cached a minute per server, and a failure means no note.duration: 'minutes'onrust.zone.openandrust.participation.open. The group-permission lease's value example istrue.coreApi→^1.13.0.ci/bundle.jsonnow includeseventTemplates.js.engagement-triggers.jsonis regenerated (only thecoreApiline changes).ci/core-ref.jsonis pinned to website#212's head (e58857c) while that PR is open, as during website#209. Re-pin it to #212's merge sha after it merges.Spec: PROTOCOL.md §20 and PLAN_REDESIGNS §2.9 (docs PR
docs/rust-protocol-14-step-editor). Companions: Rust-Plugins and Rust-Linkfeat/protocol-14-step-editor.How it was tested
npm test), including the newtest/stepEditor.test.jswith 16 tests:linked: picking, its bound, and its price;check:imports,check:bundle(81 files),check:swagger(75 paths) andcheck:engagementall pass.routes.manifest.json is current — 84 routes, all documented). Through core's own loader, the module registers and the template is listed with its duration input.buildFromTemplate, with only the server row and the kit list stubbed, returns a draft that passesspec.validate(core normalises2880mto2d). A 99999-minute weekend is refused in the author's words, and a missing kit gives"kit" is required.Checklist
AI-assisted contributions (required)
Claude Code (Claude Opus 5.5). I have reviewed and understandevery change, and take responsibility for it. AI-authored commits are
marked with a
Co-Authored-By/Assisted-Bytrailer.License
(GNU GPL v3.0 or later), and I have the right to contribute it.
🤖 Generated with Claude Code
https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
PLAN_REDESIGNS §2, the Rust half (D164, D192, D332, D333): - rust.template.kit_weekend (core registerEventTemplates, MODULE_API 1.13.0): inputs kit/minutes/message/delivery; one phase advance after the weekend, core.lease rust.group.permission default/<kit permission> + rust.kit.entitle linked. Steps only where the kit can use them; validated by the real core. - rust.kit.entitle: recipients 'linked' (every linked player who has played on the server, no tally, refused past the bound), optional message ({kit}) and delivery, stored per row (rust_perm_run_grants.notice*). - perm.sync notices: the untold set to the picked account, keyed run:step:user, in the digest; the report's noticesTold marks them told. - rust.options.grouppermissions notes a kit's permission rows via kits.uses (cached a minute per server; a failure is no note). - duration: 'minutes' on rust.zone.open and rust.participation.open; the group-permission lease's value example is true. - protocol 13 -> 14, coreApi ^1.13.0; ci/core-ref.json pinned to website#212's head while it is open; engagement-triggers.json regenerated (coreApi line). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY