docs(v0.8.79): Phase 115 complete — bridges, CSV mesh verify, roadmap
Update PLATFORM_ROADMAP (Phase 115 done, Phase 116 planned), PEARCORD_PARITY, GUILD_SYNC, DELIVERY_RECEIPTS, AUTOMATED_TESTING, INTEGRATION_WORKERS, and DIGEST_RELAY_PLUGIN (webhook URL prefs, bridge worker, new smokes). Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -122,6 +122,10 @@ Pearcord validates itself without manual QA.
|
||||
| `npm run test:archive-peer-health-refresh` | Archive peer health refresh (`ARCHIVE_PEER_HEALTH_REFRESH_SMOKE_OK`) |
|
||||
| `npm run test:hook-failure-digest-csv-sign` | Signed hook failure CSV (`HOOK_FAILURE_DIGEST_CSV_SIGN_SMOKE_OK`) |
|
||||
| `npm run test:mod-digest-group-dm-sync-live` | Mod digest GDM mesh sync (`MOD_DIGEST_GROUP_DM_SYNC_LIVE_SMOKE_OK`) |
|
||||
| `npm run test:digest-webhook-bridge-worker` | Webhook bridge worker template (`DIGEST_WEBHOOK_BRIDGE_WORKER_SMOKE_OK`) |
|
||||
| `npm run test:hook-failure-digest-csv-sign-live` | Signed CSV mesh ingest (`HOOK_FAILURE_DIGEST_CSV_SIGN_LIVE_SMOKE_OK`) |
|
||||
| `npm run test:archive-health-guild-focus` | Health refresh on guild open (`ARCHIVE_HEALTH_GUILD_FOCUS_SMOKE_OK`) |
|
||||
| `npm run test:digest-relay-webhook-url` | Custom webhook URL prefs (`DIGEST_RELAY_WEBHOOK_URL_SMOKE_OK`) |
|
||||
| `npm run test:worker-stage` | Pear stage dry-run includes worker entry |
|
||||
| `npm run test:worker-release` | Optional Pear key release dry-run (`WORKER_RELEASE_OK` or skip) |
|
||||
| `npm run test:automation-export` | Automation manifest export/import (`AUTOMATION_EXPORT_SMOKE_OK`) |
|
||||
|
||||
@@ -180,6 +180,8 @@ Retention: max 8 archives per guild, 30-day prune. `appendAuditExportArchive` me
|
||||
|
||||
**v0.8.78:** `signHookFailureDigestCsv` / `verifyHookFailureDigestCsv` on CSV exports. `persistArchivePeerHealth` for manual refresh. `dryRunWebhookRelayPost` in `pearcord-digest-relay-plugin` (no HTTP from core).
|
||||
|
||||
**v0.8.79:** `recordHookFailureDigestCsvExport` + `exportHookFailureDigestCsvSlice` for mesh CSV verify. `@pearcord/archive-health-prefs` with `autoRefreshOnGuildFocus`. `digestRelayWebhookUrl` on digest notify prefs.
|
||||
|
||||
**v0.8.72:** `@pearcord/automation-digest-notify-prefs` + per-user digest mute. `computeArchivePeerHealthScore` (0–100) on archive fetch peers. `buildAutomationHealthDashboard` merges schedules, mesh health, worker hint, and delivery metrics.
|
||||
|
||||
**v0.8.73:** `buildDigestRelayHandoff` P2P email relay stub (no SMTP). Inbox channel routing via `digestInboxChannelId`. Notify prefs extended with relay toggle.
|
||||
|
||||
@@ -61,3 +61,21 @@ Builtin plugins include a `description` field for the marketplace cards.
|
||||
| `npm run test:relay-plugin-marketplace` | `RELAY_PLUGIN_MARKETPLACE_SMOKE_OK` |
|
||||
| `npm run test:digest-relay-handoff-signed-sync-live` | `DIGEST_RELAY_HANDOFF_SIGNED_SYNC_LIVE_SMOKE_OK` |
|
||||
| `npm run test:digest-webhook-relay-dry-run` | `DIGEST_WEBHOOK_RELAY_DRY_RUN_SMOKE_OK` |
|
||||
| `npm run test:digest-relay-webhook-url` | `DIGEST_RELAY_WEBHOOK_URL_SMOKE_OK` |
|
||||
|
||||
## Custom webhook URL (v0.8.79)
|
||||
|
||||
`automationDigestNotifyPrefs.digestRelayWebhookUrl` is stored per guild in `@pearcord/automation-digest-notify-prefs`, synced on `GUILD_SYNC`, and applied by `applyRelayPluginToHandoff` as `webhookUrl` on signed handoffs.
|
||||
|
||||
Platform APIs:
|
||||
|
||||
| API | Role |
|
||||
|-----|------|
|
||||
| `dryRunDigestWebhookRelay(guildId)` | UI dry-run POST preview via `dryRunWebhookRelayPost` |
|
||||
| `_syncDigestRelayWebhookUrlToPlugin(guildId)` | Keeps active relay plugin manifest in sync |
|
||||
|
||||
Server settings → **Digest export notifications** → **Webhook URL** + **Dry-run POST** button.
|
||||
|
||||
## Integration worker bridge (v0.8.79)
|
||||
|
||||
Template `digest-webhook-bridge` in `pearcord-integration-worker` listens for `automation-hook-digest-relay` and calls injected `dryRunWebhookRelayPost`. See [INTEGRATION_WORKERS.md](./INTEGRATION_WORKERS.md).
|
||||
|
||||
@@ -61,6 +61,8 @@ When a member joins a guild over an invite, they may have **no local message his
|
||||
|
||||
**v0.8.78:** `modDigestGroupDmMeta` top-level slice (`channelId`, `participantIds`, `displayName`) for mesh participant sync. Prefs also store `modDigestGroupDmParticipantIds` on create.
|
||||
|
||||
**v0.8.79:** `hookFailureDigestCsvExport` gossips signed CSV body + signature. `archiveHealthPrefs.autoRefreshOnGuildFocus` syncs guild health refresh behavior. `automationDigestNotifyPrefs.digestRelayWebhookUrl` for webhook-bridge manifests.
|
||||
|
||||
## When sync is sent
|
||||
|
||||
| Trigger | Who pushes |
|
||||
|
||||
@@ -17,6 +17,7 @@ Headless **Pear worker templates** for guild automations — Discord [Integratio
|
||||
| `permission-auditor` | Permissions | Audit channel overwrite changes |
|
||||
| `member-watch` | Members | Track joins + role updates (`notify` hook sample) |
|
||||
| `delivery-tracer` | All | Print `APP_EVENT_RECEIPT` gossip for hook debugging |
|
||||
| `digest-webhook-bridge` | Automation | Simulate webhook POST for signed digest relay handoffs (**v0.8.79**) |
|
||||
|
||||
## Platform API
|
||||
|
||||
|
||||
@@ -156,6 +156,8 @@ Phases **0–2** and **4** are largely complete; **3** (live audio) and **5** (n
|
||||
|
||||
**Next tranches (Phase 106+):** Automation digest snapshot mesh body gossip · archive peer last-seen · publish announce + matrix E2E.
|
||||
|
||||
**v0.8.79 (Phase 115):** Digest webhook bridge worker template, signed CSV mesh export, archive health refresh on guild focus, custom relay webhook URL.
|
||||
|
||||
**v0.8.78 (Phase 114):** Webhook relay dry-run POST preview, archive peer health refresh UI, signed hook failure digest CSV, mod digest group DM mesh meta sync.
|
||||
|
||||
**v0.8.77 (Phase 113):** Mod digest group DM on hook failure push, worker beta/prerelease install banners, relay plugin marketplace UI, signed digest relay handoff mesh verify smoke.
|
||||
|
||||
+20
-6
@@ -307,16 +307,29 @@ When completing work, change `[ ]` → `[x]` and add a one-line note under **Cha
|
||||
|
||||
---
|
||||
|
||||
### Phase 115 — External bridges & CSV verify (planned)
|
||||
### Phase 116 — Workers & signed exports (planned)
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P115-1 | External webhook bridge worker script template | [ ] |
|
||||
| P115-2 | Digest CSV HMAC verify smoke on mesh export | [ ] |
|
||||
| P115-3 | Archive health decay auto-refresh on guild focus | [ ] |
|
||||
| P115-4 | Relay plugin custom webhook URL in prefs | [ ] |
|
||||
| P116-1 | Headless webhook POST worker (external process) | [ ] |
|
||||
| P116-2 | Signed audit export CSV bundle | [ ] |
|
||||
| P116-3 | Hook failure digest CSV mesh gossip push smoke | [ ] |
|
||||
| P116-4 | Relay plugin per-guild SMTP config UI | [ ] |
|
||||
|
||||
**Next:** Headless webhook POST worker · signed audit CSV bundle.
|
||||
**Next:** External bridge runner · audit CSV signing.
|
||||
|
||||
---
|
||||
|
||||
### Phase 115 — External bridges & CSV verify (v0.8.79)
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P115-1 | External webhook bridge worker script template | [x] |
|
||||
| P115-2 | Digest CSV HMAC verify smoke on mesh export | [x] |
|
||||
| P115-3 | Archive health decay auto-refresh on guild focus | [x] |
|
||||
| P115-4 | Relay plugin custom webhook URL in prefs | [x] |
|
||||
|
||||
**Next:** ~~Webhook worker template · CSV mesh verify · guild focus refresh · webhook URL prefs~~ (Phase 115).
|
||||
|
||||
---
|
||||
|
||||
@@ -1463,6 +1476,7 @@ When completing work, change `[ ]` → `[x]` and add a one-line note under **Cha
|
||||
|
||||
### Changelog
|
||||
|
||||
- **2026-05-22** — v0.8.79: `digest-webhook-bridge` integration worker template, signed hook failure CSV on `GUILD_SYNC`, archive health auto-refresh on guild focus, `digestRelayWebhookUrl` prefs, `test:digest-webhook-bridge-worker`, `test:hook-failure-digest-csv-sign-live`, `test:archive-health-guild-focus`, `test:digest-relay-webhook-url`.
|
||||
- **2026-05-22** — v0.8.78: webhook relay POST dry-run stub, archive peer health refresh UI timer, signed hook failure digest CSV export, `modDigestGroupDmMeta` GUILD_SYNC slice, `test:digest-webhook-relay-dry-run`, `test:archive-peer-health-refresh`, `test:hook-failure-digest-csv-sign`, `test:mod-digest-group-dm-sync-live`.
|
||||
- **2026-05-22** — v0.8.77: mod digest group DM auto-create + mesh sync posts, worker beta/prerelease install banners, relay plugin marketplace UI, signed `digestRelayHandoff` on GUILD_SYNC + verify smoke, `test:mod-digest-group-dm`, `test:worker-beta-banner`, `test:relay-plugin-marketplace`, `test:digest-relay-handoff-signed-sync-live`.
|
||||
- **2026-05-22** — v0.8.76: relay handoff HMAC stub, archive peer health decay, SMTP relay bridge doc, persisted relay plugins, live plugin GUILD_SYNC smoke, `test:digest-relay-hmac`, `test:archive-peer-health-decay`, `test:digest-relay-plugin-sync-live`.
|
||||
|
||||
Reference in New Issue
Block a user