minecraft-server/staging/chatchat/README.md

51 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

# 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
```bash
# 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`.