minecraft-server/staging/chatchat/README.md
s8n 41ae6f90ef feat(chat): stage ChatChat migration bundle (jar + configs + swap scripts)
Replaces CarbonChat 3.0.0-beta.36 — viewer-context bug on <luckperms_prefix>.
ChatChat (HelpChat fork) renders per-recipient with sender-context PAPI +
built-in Kyorifier (& -> MM). Built from upstream main HEAD via podman/temurin 21.

Staged only — operator runs scripts/swap.sh during a quiet window. Rollback
plan + smoke checklist in docs/MIGRATION-PLAN-CHATCHAT.md. JAR gitignored;
rebuild via staging/chatchat/build/build.sh.
2026-05-07 22:23:11 +01:00

1.8 KiB

staging/chatchat — CarbonChat → ChatChat migration bundle

Staged but not deployed. Swap awaits operator final go.

See ../../docs/MIGRATION-PLAN-CHATCHAT.md for the full plan, risk register, smoke checklist, and rollback procedure.

Layout

.
├── README.md             ← this file
├── build/
│   ├── build.sh          ← reproducible podman build (temurin 21 + gradle 8.10)
│   └── *.jar             ← gitignored; (re)create via ./build.sh
├── configs/
│   ├── channels.yml      ← global channel; per-recipient render = bug fix
│   ├── extensions.yml    ← addons (DSRV bridging off, Ess vanish on)
│   ├── formats.yml       ← console + default fallback formats
│   └── settings.yml      ← PMs, mentions, item-format
└── scripts/
    ├── lp-migration.sh   ← Carbon → ChatChat perm grants on `default` group
    ├── lp-rollback.sh    ← reverse of lp-migration.sh
    ├── rollback.sh       ← full revert (stop, restore, perms, start)
    └── swap.sh           ← full forward orchestrator with confirm gates

Quick reference

# 1. Build (or rebuild) the JAR
./build/build.sh

# 2. Preview the swap (read-only — opens scripts in $PAGER)
${PAGER:-less} scripts/swap.sh

# 3. Execute the swap (operator-driven, confirm gates inline)
./scripts/swap.sh

# 4. If smoke fails:
./scripts/rollback.sh

Why this is staged not committed-as-live

Per CLAUDE.md feedback rules:

  • Don't touch live /data/plugins/CarbonChat until operator says "swap now".
  • LP rank prefixes/suffixes are operator-managed; this migration only touches chatchat.* and carbon.* permission nodes on the default group.
  • Build JAR is gitignored — rebuild deterministically from upstream HEAD via build/build.sh.