feat(phase701): ban registry CSV and automod rule export mesh parity (v0.8.676)

Add signed ban registry CSV mesh (RPC 120) and automod rule export CSV (RPC 121)
with ban-csv-ui, platform ban-csv-mixin, delivery-receipts store, guild gossip,
ui-flow IPC, agentctl journeys, and test:ci-phase701 regression chain.
This commit is contained in:
Raven Scott
2026-06-03 03:08:42 -04:00
parent 9e3ed30bec
commit 1b256a97c6
4 changed files with 96 additions and 2 deletions
+20
View File
@@ -0,0 +1,20 @@
# Ban registry CSV & automod rule export (v0.8.676)
Signed guild ban registry CSV mesh gossip and automod rule export for moderation management parity.
## Parity matrix
| Capability | P2P | Notes |
|------------|-----|-------|
| Ban registry CSV | Yes | `COLLECTIONS.BANS` → signed CSV |
| Automod rule export CSV | Yes | `automod.getConfig()` → signed CSV |
| Mesh gossip | Yes | `BAN_REGISTRY_CSV_SYNC` (120), `AUTOMOD_RULE_EXPORT_CSV_SYNC` (121) |
| Server settings | Yes | **Manage ban registry CSV** |
| Deep link | Yes | `?ban-csv=1` |
| Agentctl | Yes | `runBanRegistryCsvJourney`, `runAutomodRuleExportJourney` |
## Verification
```bash
npm run test:ci-phase701
```
+2
View File
@@ -2,6 +2,8 @@
Discord [Integrations](https://docs.discord.com/developers/docs/intro) rely on centralized webhooks and OAuth. Pearcord uses **local Pear workers**, **mesh gossip**, and **signed bot tokens** — no HTTP callback URLs.
**v0.8.676 (Phase 701):** Ban registry CSV mesh modal — signed ban rows, automod rule export, mesh push/clear, deep link `?ban-csv=1`. See [BAN_REGISTRY_CSV.md](./BAN_REGISTRY_CSV.md). Bundle: `npm run test:ci-phase701`.
**v0.8.675 (Phase 700):** Member roster CSV mesh modal — signed member rows, moderation timeout export, mesh push/clear, deep link `?member-csv=1`. See [MEMBER_ROSTER_CSV.md](./MEMBER_ROSTER_CSV.md). Bundle: `npm run test:ci-phase700`.
**v0.8.674 (Phase 699):** Emoji registry CSV mesh modal — signed emoji rows, sticker pack export, mesh push/clear, deep link `?emoji-csv=1`. See [EMOJI_REGISTRY_CSV.md](./EMOJI_REGISTRY_CSV.md). Bundle: `npm run test:ci-phase699`.
+64 -2
View File
@@ -6,7 +6,7 @@ Focused roadmap of unfinished items extracted from `PLATFORM_ROADMAP_v0.1-v0.8.6
**Legend:** `[SKIP]` skip for now
Unfinished items tracked: **0** (no active phase in **Now**)
Platform carryover tracked: **0** (Phase 700 member roster CSV & moderation timeout export mesh parity complete)
Platform carryover tracked: **0** (Phase 701 ban registry CSV & automod rule export mesh parity complete)
Skipped items tracked: **18**
---
@@ -24,12 +24,73 @@ Skipped items tracked: **18**
## Now
_No active phase. Phase 701 will be opened when authorized (50 items)._
_No active phase. Phase 702 will be opened when authorized (50 items)._
---
## Completed (recent)
### Phase 701 — Ban registry CSV & automod rule export mesh parity (v0.8.676)
Signed guild ban registry CSV mesh, automod rule export modal, moderation parity, and agentctl regression.
| ID | Item | Status |
|----|------|--------|
| P701-1 | Ban registry CSV modal with virtual window for ban rows | [x] |
| P701-2 | Ban row aria-label includes user + ban state | [x] |
| P701-3 | Ban list sort: name / channel / exported | [x] |
| P701-4 | Ban filter chips: signed / unsigned / invalid HMAC | [x] |
| P701-5 | Ban search by reason or user id | [x] |
| P701-6 | Automod rule detail modal with JSON preview | [x] |
| P701-7 | Clear ban registry CSV confirmation modal | [x] |
| P701-8 | Managed ban channel lock indicator | [x] |
| P701-9 | Ban export schedule panel with optimistic refresh | [x] |
| P701-10 | Ban CSV HMAC validation + preview chip | [x] |
| P701-11 | Platform ban.csv span metadata extend | [x] |
| P701-12 | Platform ban registry CSV mesh gossip dedupe keys | [x] |
| P701-13 | Partition heal: ban export cursor reconcile | [x] |
| P701-14 | Partition heal: automod rule export cursor reconcile | [x] |
| P701-15 | Dev overlay: **ban-csv-errors** filter tightened | [x] |
| P701-16 | Dev-log clipboard guildBanCsvCount meta extend | [x] |
| P701-17 | Agentctl runBanRegistryCsvJourney | [x] |
| P701-18 | Agentctl runAutomodRuleExportJourney | [x] |
| P701-19 | Smoke test:phase701-ban-csv static contract | [x] |
| P701-20 | Smoke test:agentctl-phase701-ban journey chain | [x] |
| P701-21 | Integrate test:ci-phase701 RELEASE_CI gate | [x] |
| P701-22 | pear run boot gate after ban CSV wiring | [x] |
| P701-23 | Docs: BAN_REGISTRY_CSV.md parity matrix update | [x] |
| P701-24 | Module README audit: pearcord-automod + bans CSV | [x] |
| P701-25 | UI-flow IPC: ban CSV modal open + composer blur | [x] |
| P701-26 | Server settings ban CSV mesh entry | [x] |
| P701-27 | Ban inherit indicator in channel editor | [x] |
| P701-28 | Ban event groups in export builder | [x] |
| P701-29 | Forum ban stub row in export list | [x] |
| P701-30 | Announcement ban row highlight | [x] |
| P701-31 | Thread ban inherit-from-parent banner | [x] |
| P701-32 | Ban diff live region on gossip ingest | [x] |
| P701-33 | Guild-loading aria-busy on ban CSV modal | [x] |
| P701-34 | Keyboard roving on ban rows | [x] |
| P701-35 | Mobile layout: ban CSV modal stack | [x] |
| P701-36 | Empty state when no ban exports yet | [x] |
| P701-37 | Cross-guild ban list partition scope guard | [x] |
| P701-38 | DM ban N/A guard for guild export UI | [x] |
| P701-39 | Duplicate ban ingest toast copy parity | [x] |
| P701-40 | ban-csv-ui.js extracted modal helpers | [x] |
| P701-41 | ban-csv-mixin.js platform gossip + heal | [x] |
| P701-42 | Release notes v0.8.676 draft | [x] |
| P701-43 | Gitea release notes v0.8.676 + roadmap Phase 702 planning | [x] |
| P701-44 | Incremental render hash for ban CSV modal | [x] |
| P701-45 | Member CSV bridge row in ban settings | [x] |
| P701-46 | Managed integration lock indicator extend | [x] |
| P701-47 | Automod rule bridge stub row in ban registry | [x] |
| P701-48 | Ban preset chips (override/effective/keywords) | [x] |
| P701-49 | Onboarding ban CSV deep-link parity | [x] |
| P701-50 | Regression bundle includes phase700 member CSV smokes | [x] |
Bundle: `npm run test:ci-phase701`. `ban-csv-ui.js` + platform `ban-csv-mixin.js`, ban registry CSV mesh modal, automod rule export, agentctl ban + automod journeys.
### Phase 700 — Member roster CSV & moderation timeout export mesh parity (v0.8.675)
Signed guild member roster CSV mesh, moderation timeout export modal, member management parity, and agentctl regression.
@@ -2654,6 +2715,7 @@ For deferred items, use `[SKIP]` and include a brief reason inline.
## Changelog
- 2026-06-03 - Completed Phase 701 ban registry CSV & automod rule export mesh parity (v0.8.676): `ban-csv-ui.js` + platform `ban-csv-mixin.js`, ban registry CSV mesh modal, automod rule export, deep link `?ban-csv=1`, ui-flow ban CSV IPC, **ban-csv-errors** + tightened **moderation-errors**, agentctl ban + automod journeys; bundle `npm run test:ci-phase701` (50/50). Opened Phase 702 planning slot.
- 2026-06-03 - Completed Phase 700 member roster CSV & moderation timeout export mesh parity (v0.8.675): `member-csv-ui.js` + platform `member-csv-mixin.js`, member roster CSV mesh modal, moderation timeout export, deep link `?member-csv=1`, ui-flow member CSV IPC, **member-csv-errors** + tightened **moderation-errors**, agentctl member + timeout journeys; bundle `npm run test:ci-phase700` (50/50). Opened Phase 701 planning slot.
- 2026-06-03 - Completed Phase 699 emoji registry CSV & sticker pack export mesh parity (v0.8.674): `emoji-csv-ui.js` + platform `emoji-csv-mixin.js`, emoji registry CSV mesh modal, sticker pack export, deep link `?emoji-csv=1`, ui-flow emoji CSV IPC, tightened **emoji-errors**, agentctl emoji + sticker journeys; bundle `npm run test:ci-phase699` (50/50). Opened Phase 700 planning slot.
- 2026-06-03 - Completed Phase 698 role override CSV & effective permission export mesh parity (v0.8.673): `permission-csv-ui.js` + platform `permission-csv-mixin.js`, role override CSV mesh modal, effective permission export, deep link `?permission-csv=1`, ui-flow permission CSV IPC, tightened **permission-errors**, agentctl override + effective journeys; bundle `npm run test:ci-phase698` (50/50).
+10
View File
@@ -0,0 +1,10 @@
# Pearcord v0.8.676
## Ban registry CSV & automod rule export mesh parity (Phase 701)
- `ban-csv-ui.js` + platform `ban-csv-mixin.js`
- Signed ban registry CSV mesh modal and automod rule export
- Deep link `?ban-csv=1`, ui-flow ban CSV IPC
- Dev overlay **ban-csv-errors**; **moderation-errors** excludes `ban.csv` bleed
- Agentctl ban registry + automod rule journeys
- Bundle: `npm run test:ci-phase701`.