docs: Phase 101 archive download, digest live sync, worker trial (v0.8.65)

Document exportAuditExportArchive, runIntegrationWorkerTrial, new smokes,
Phase 101 complete and Phase 102 roadmap items.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-05-22 04:49:11 -04:00
co-authored by Cursor
parent 763f8389f2
commit 45a631bc83
7 changed files with 31 additions and 2 deletions
+3
View File
@@ -45,6 +45,8 @@ Pearcord records **local audit entries** in HyperDB (`@pearcord/audit-log`) for
**v0.8.64:** **Audit export archives** — each export is retained locally (max 8, 30 days) and gossipped via `AUDIT_EXPORT_ARCHIVE` (RPC 71). Server settings lists recent mesh exports; `GUILD_SYNC.auditExportArchives` shares metadata with joiners. **v0.8.64:** **Audit export archives** — each export is retained locally (max 8, 30 days) and gossipped via `AUDIT_EXPORT_ARCHIVE` (RPC 71). Server settings lists recent mesh exports; `GUILD_SYNC.auditExportArchives` shares metadata with joiners.
**v0.8.65:** Per-archive **JSON** / **CSV** buttons open a download modal (`exportAuditExportArchive`) with full export body and clipboard copy.
## Tests ## Tests
| Script | Marker | | Script | Marker |
@@ -55,6 +57,7 @@ Pearcord records **local audit entries** in HyperDB (`@pearcord/audit-log`) for
| `npm run test:audit-export-gossip` | `AUDIT_EXPORT_GOSSIP_SMOKE_OK` | | `npm run test:audit-export-gossip` | `AUDIT_EXPORT_GOSSIP_SMOKE_OK` |
| `npm run test:audit-export-schedule` | `AUDIT_EXPORT_SCHEDULE_SMOKE_OK` | | `npm run test:audit-export-schedule` | `AUDIT_EXPORT_SCHEDULE_SMOKE_OK` |
| `npm run test:audit-export-archive` | `AUDIT_EXPORT_ARCHIVE_SMOKE_OK` | | `npm run test:audit-export-archive` | `AUDIT_EXPORT_ARCHIVE_SMOKE_OK` |
| `npm run test:audit-export-archive-download` | `AUDIT_EXPORT_ARCHIVE_DOWNLOAD_SMOKE_OK` |
## P2P gossip (v0.4.2+) ## P2P gossip (v0.4.2+)
+3
View File
@@ -75,6 +75,9 @@ Pearcord validates itself without manual QA.
| `npm run test:audit-export-archive` | Audit export mesh archives (`AUDIT_EXPORT_ARCHIVE_SMOKE_OK`) | | `npm run test:audit-export-archive` | Audit export mesh archives (`AUDIT_EXPORT_ARCHIVE_SMOKE_OK`) |
| `npm run test:digest-export-schedule` | Scheduled digest mesh sync (`DIGEST_EXPORT_SCHEDULE_SMOKE_OK`) | | `npm run test:digest-export-schedule` | Scheduled digest mesh sync (`DIGEST_EXPORT_SCHEDULE_SMOKE_OK`) |
| `npm run test:worker-install-plan` | Worker install plan (`WORKER_INSTALL_PLAN_SMOKE_OK`) | | `npm run test:worker-install-plan` | Worker install plan (`WORKER_INSTALL_PLAN_SMOKE_OK`) |
| `npm run test:audit-export-archive-download` | Audit archive download (`AUDIT_EXPORT_ARCHIVE_DOWNLOAD_SMOKE_OK`) |
| `npm run test:digest-export-schedule-live` | Live digest schedule mesh (`DIGEST_EXPORT_SCHEDULE_LIVE_SMOKE_OK`) |
| `npm run test:worker-install-trial` | In-process worker trial (`WORKER_INSTALL_TRIAL_SMOKE_OK`) |
| `npm run test:worker-stage` | Pear stage dry-run includes worker entry | | `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: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`) | | `npm run test:automation-export` | Automation manifest export/import (`AUTOMATION_EXPORT_SMOKE_OK`) |
+4
View File
@@ -152,6 +152,8 @@ Mirrors audit export schedule: `digestExportSchedule` prefs (`enabled`, `interva
Retention: max 8 archives per guild, 30-day prune. Retention: max 8 archives per guild, 30-day prune.
**v0.8.65:** Live mesh smoke for scheduled digest push (`test:digest-export-schedule-live`).
## Tests ## Tests
| Script | Validates | | Script | Validates |
@@ -170,6 +172,8 @@ Retention: max 8 archives per guild, 30-day prune.
| `npm run test:hook-failure-digest-sync` | Digest mesh sync → `HOOK_FAILURE_DIGEST_SYNC_SMOKE_OK` | | `npm run test:hook-failure-digest-sync` | Digest mesh sync → `HOOK_FAILURE_DIGEST_SYNC_SMOKE_OK` |
| `npm run test:digest-export-schedule` | Scheduled digest push → `DIGEST_EXPORT_SCHEDULE_SMOKE_OK` | | `npm run test:digest-export-schedule` | Scheduled digest push → `DIGEST_EXPORT_SCHEDULE_SMOKE_OK` |
| `npm run test:audit-export-archive` | Audit export archives → `AUDIT_EXPORT_ARCHIVE_SMOKE_OK` | | `npm run test:audit-export-archive` | Audit export archives → `AUDIT_EXPORT_ARCHIVE_SMOKE_OK` |
| `npm run test:audit-export-archive-download` | Archive download body → `AUDIT_EXPORT_ARCHIVE_DOWNLOAD_SMOKE_OK` |
| `npm run test:digest-export-schedule-live` | Live mesh digest schedule → `DIGEST_EXPORT_SCHEDULE_LIVE_SMOKE_OK` |
| `npm run test:integration-worker` | Retention + worker templates | | `npm run test:integration-worker` | Retention + worker templates |
| `npm run test:delivery-metrics` | `DELIVERY_METRICS_SMOKE_OK` | | `npm run test:delivery-metrics` | `DELIVERY_METRICS_SMOKE_OK` |
| `npm run test:app-events` | App event bridge (unchanged) | | `npm run test:app-events` | App event bridge (unchanged) |
+2
View File
@@ -25,6 +25,8 @@ Headless **Pear worker templates** for guild automations — Discord [Integratio
| `listIntegrationWorkerTemplates()` | Template metadata for server settings UI | | `listIntegrationWorkerTemplates()` | Template metadata for server settings UI |
| `buildIntegrationWorkerScript(templateId)` | Bare script string (copy from UI) | | `buildIntegrationWorkerScript(templateId)` | Bare script string (copy from UI) |
| `createIntegrationWorker()` | Live worker on current guild mesh | | `createIntegrationWorker()` | Live worker on current guild mesh |
| `runIntegrationWorkerTrial({ templateId, holdMs })` | In-process trial (v0.8.65) — no separate Pear spawn |
| `fetchWorkerInstallPlan(templateId)` | Pear install command for announced worker |
| `getAutomationReceiptRetention()` | `{ maxCount, maxAgeMs, maxAgeDays }` | | `getAutomationReceiptRetention()` | `{ maxCount, maxAgeMs, maxAgeDays }` |
| `setAutomationReceiptRetention(partial)` | Manage Server — prune local receipt store | | `setAutomationReceiptRetention(partial)` | Manage Server — prune local receipt store |
+1 -1
View File
@@ -154,7 +154,7 @@ Phases **02** and **4** are largely complete; **3** (live audio) and **5** (n
| P95-1 | Live mesh audit sync + per-user hook mute + worker publish (v0.8.59) | [x] | | P95-1 | Live mesh audit sync + per-user hook mute + worker publish (v0.8.59) | [x] |
| P96-1 | Audit filters + hook failure digest + worker release hints (v0.8.60) | [x] | | P96-1 | Audit filters + hook failure digest + worker release hints (v0.8.60) | [x] |
**Next tranches (Phase 101+):** Audit archive download modal · digest schedule live mesh smoke · one-click worker install runner. **Next tranches (Phase 102+):** Archive P2P fetch by id gossip · worker trial event assertions · automation schedule dashboard.
When Phase 5 checklist is `[x]`, copy open items here into tracked rows in `PLATFORM_ROADMAP.md`. When Phase 5 checklist is `[x]`, copy open items here into tracked rows in `PLATFORM_ROADMAP.md`.
+15 -1
View File
@@ -294,6 +294,19 @@ When completing work, change `[ ]` → `[x]` and add a one-line note under **Cha
--- ---
### Phase 101 — Archive download, digest live sync & worker trial runner (v0.8.65)
| ID | Item | Status |
|----|------|--------|
| P101-1 | `exportAuditExportArchive` + modal download JSON/CSV per archive | [x] |
| P101-2 | Live mesh `digestExportSchedule` / GUILD_SYNC digest ingest smoke | [x] |
| P101-3 | `runIntegrationWorkerTrial` in-process + UI button | [x] |
| P101-4 | `test:audit-export-archive-download`, `test:digest-export-schedule-live`, `test:worker-install-trial` | [x] |
**Next:** Archive P2P fetch by id gossip · worker trial event assertions · automation schedule dashboard.
---
### Phase 100 — Audit archives, digest schedule & worker install flow (v0.8.64) ### Phase 100 — Audit archives, digest schedule & worker install flow (v0.8.64)
| ID | Item | Status | | ID | Item | Status |
@@ -303,7 +316,7 @@ When completing work, change `[ ]` → `[x]` and add a one-line note under **Cha
| P100-3 | `buildWorkerInstallPlan` + Copy Pear install command UI | [x] | | P100-3 | `buildWorkerInstallPlan` + Copy Pear install command UI | [x] |
| P100-4 | `test:audit-export-archive`, `test:digest-export-schedule`, `test:worker-install-plan` | [x] | | P100-4 | `test:audit-export-archive`, `test:digest-export-schedule`, `test:worker-install-plan` | [x] |
**Next:** Audit archive download modal · digest schedule live mesh smoke · one-click worker install runner. **Next:** ~~Audit archive download modal · digest schedule live mesh smoke · one-click worker install runner~~ (Phase 101).
--- ---
@@ -1265,6 +1278,7 @@ When completing work, change `[ ]` → `[x]` and add a one-line note under **Cha
### Changelog ### Changelog
- **2026-05-22** — v0.8.65: audit archive download modal, live digest schedule mesh smoke, `runIntegrationWorkerTrial`, `test:audit-export-archive-download`, `test:digest-export-schedule-live`, `test:worker-install-trial`.
- **2026-05-22** — v0.8.64: `AUDIT_EXPORT_ARCHIVE` RPC 71, digest export schedule, `buildWorkerInstallPlan`, `test:audit-export-archive`, `test:digest-export-schedule`, `test:worker-install-plan`. - **2026-05-22** — v0.8.64: `AUDIT_EXPORT_ARCHIVE` RPC 71, digest export schedule, `buildWorkerInstallPlan`, `test:audit-export-archive`, `test:digest-export-schedule`, `test:worker-install-plan`.
- **2026-05-22** — v0.8.63: scheduled audit export gossip, `HOOK_FAILURE_DIGEST_SYNC` RPC 70, worker `buildVersionDiff` banner, `test:audit-export-schedule`, `test:hook-failure-digest-sync`, `test:worker-version-diff`. - **2026-05-22** — v0.8.63: scheduled audit export gossip, `HOOK_FAILURE_DIGEST_SYNC` RPC 70, worker `buildVersionDiff` banner, `test:audit-export-schedule`, `test:hook-failure-digest-sync`, `test:worker-version-diff`.
- **2026-05-22** — v0.8.62: `AUDIT_EXPORT_SNAPSHOT` RPC 69, hook failure digest export, worker release changelog in hint banner, `test:audit-export-gossip`, `test:hook-failure-digest-export`, `test:worker-release-changelog`. - **2026-05-22** — v0.8.62: `AUDIT_EXPORT_SNAPSHOT` RPC 69, hook failure digest export, worker release changelog in hint banner, `test:audit-export-gossip`, `test:hook-failure-digest-export`, `test:worker-release-changelog`.
+3
View File
@@ -80,6 +80,7 @@ The script calls `platform.announceWorkerRelease({ workerVersion, pearUri: pear:
| `npm run test:worker-release-changelog` | `WORKER_RELEASE_CHANGELOG_SMOKE_OK` | | `npm run test:worker-release-changelog` | `WORKER_RELEASE_CHANGELOG_SMOKE_OK` |
| `npm run test:worker-version-diff` | `WORKER_VERSION_DIFF_SMOKE_OK` | | `npm run test:worker-version-diff` | `WORKER_VERSION_DIFF_SMOKE_OK` |
| `npm run test:worker-install-plan` | `WORKER_INSTALL_PLAN_SMOKE_OK` | | `npm run test:worker-install-plan` | `WORKER_INSTALL_PLAN_SMOKE_OK` |
| `npm run test:worker-install-trial` | `WORKER_INSTALL_TRIAL_SMOKE_OK` |
Set `PEARCORD_RELEASE_NOTES` when running `announce-worker-after-publish.cjs` after publish. Set `PEARCORD_RELEASE_NOTES` when running `announce-worker-after-publish.cjs` after publish.
@@ -95,6 +96,8 @@ Mods with **Manage Server** can **Announce worker release to guild** in server s
**v0.8.64:** **Copy Pear install command** uses `buildWorkerInstallPlan` — returns `pear run {pearUri} --trusted -- worker/index.js {template}` for the announced worker bundle. **v0.8.64:** **Copy Pear install command** uses `buildWorkerInstallPlan` — returns `pear run {pearUri} --trusted -- worker/index.js {template}` for the announced worker bundle.
**v0.8.65:** **Run worker trial (in-process)** calls `runIntegrationWorkerTrial` — starts `PearcordIntegrationWorker` briefly without spawning a separate Pear process (validates template wiring before publish).
`GUILD_SYNC` bundles may include `workerReleaseHint` so joiners learn of published worker versions. `GUILD_SYNC` bundles may include `workerReleaseHint` so joiners learn of published worker versions.
| Test | Marker | | Test | Marker |