docs(rust): phase 17 plan of record — BetterChat and popups (PLAN.md §33, M19) #277

Merged
whitlocktech merged 1 commits from docs/rust-phase-17 into main 2026-09-25 19:55:19 +00:00
Member

The plan of record for module-rust phase 17, the optional-integration tier (R15). It is written before any code, with your decisions from today recorded as D134–D143.

What the phase builds

  • BetterChat titles from rules each server's operator sets: a stat, a top N, and a text and colour. They rank the current wipe. A per-server setting shows the first title a player earns, all of them, or up to N.
    • Titles show in game chat, on the web leaderboard and in the app, so Android joins as M19.
  • All twelve BetterChat fields on a site-authored permission group, under R2's drift posture: a hand edit is reported, never silently overwritten. Deleting a styled group runs BetterChat's own chat group remove.
  • A styled group as the "voice" of news and rust.announce lines. The module composes the line and the plugin broadcasts it, with no stand-in sender.
  • PopupNotifications becomes optional, and popups become a delivery choice for rust.announce and for the news leg.
  • Protocol 12, which adds titles.set and extends perm.sync and chat.say.
  • Core does not change, and MODULE_API does not move.

Corrections to the plan found while reading the sources

  • R5 is wrong a second time. It says the uMod Clans plugin has no read API. It has one (GetClan, GetAllClans, GetClanOf…), as plain private methods, which a [HookMethod] grep can't see.
  • The Clans adapter is dropped (D134). A per-server "clan source", with the plugin feeding Teams, is noted as a candidate future phase.
  • D54's promised leadership "sharpening" is withdrawn. The plugin's OnClanUpdate is about its own clans, not the game's.
  • BetterChat's API_SetGroupField never saves. A pushed style would revert on reload and read as drift. D143 saves it through BetterChat's console path.

For your review

  • §33.4 has seven readings I took without asking. Two to look at: the voice is one fleet setting, and a title's text is capped at 24 characters with markup stripped.

  • rust.announce stays at action version 1. A bump would stop every existing step from dispatching.

  • AI-assisted: Claude Code (Claude Opus 5.5)

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

The plan of record for module-rust phase 17, the optional-integration tier (R15). It is written before any code, with your decisions from today recorded as **D134–D143**. **What the phase builds** - **BetterChat titles** from rules each server's operator sets: a stat, a top N, and a text and colour. They rank the current wipe. A per-server setting shows the first title a player earns, all of them, or up to N. - Titles show in game chat, on the web leaderboard and in the app, so Android joins as M19. - **All twelve BetterChat fields on a site-authored permission group**, under R2's drift posture: a hand edit is reported, never silently overwritten. Deleting a styled group runs BetterChat's own `chat group remove`. - **A styled group as the "voice"** of news and `rust.announce` lines. The module composes the line and the plugin broadcasts it, with no stand-in sender. - **PopupNotifications becomes optional**, and popups become a delivery choice for `rust.announce` and for the news leg. - **Protocol 12**, which adds `titles.set` and extends `perm.sync` and `chat.say`. - **Core does not change**, and `MODULE_API` does not move. **Corrections to the plan found while reading the sources** - **R5 is wrong a second time.** It says the uMod Clans plugin has no read API. It has one (`GetClan`, `GetAllClans`, `GetClanOf`…), as plain private methods, which a `[HookMethod]` grep can't see. - **The Clans adapter is dropped (D134).** A per-server "clan source", with the plugin feeding Teams, is noted as a candidate future phase. - **D54's promised leadership "sharpening" is withdrawn.** The plugin's `OnClanUpdate` is about its own clans, not the game's. - **BetterChat's `API_SetGroupField` never saves.** A pushed style would revert on reload and read as drift. D143 saves it through BetterChat's console path. **For your review** - **§33.4 has seven readings I took without asking.** Two to look at: the voice is one fleet setting, and a title's text is capped at 24 characters with markup stripped. - **`rust.announce` stays at action version 1.** A bump would stop every existing step from dispatching. - [x] AI-assisted: Claude Code (Claude Opus 5.5) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-09-25 19:53:30 +00:00
The optional-integration tier (R15), with the org lead's decisions D134-D143:
BetterChat titles from operator rules (also on the web and in the app), all
twelve chat fields on a site-authored group under R2's drift posture, that
style as the voice of news and event lines, and PopupNotifications made
optional as a delivery choice. Protocol 12.

The uMod Clans adapter is dropped (D134). R5's claim that the plugin has no
read API is corrected (a second grep artefact), and D54's promised
leadership sharpening is withdrawn: OnClanUpdate is the plugin's own clans.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
whitlocktech approved these changes 2026-09-25 19:55:12 +00:00
whitlocktech merged commit a16e6b6f22 into main 2026-09-25 19:55:19 +00:00
whitlocktech deleted branch docs/rust-phase-17 2026-09-25 19:55:19 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RunicGateway/docs#277
No description provided.