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:
@@ -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+)
|
||||||
|
|
||||||
|
|||||||
@@ -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`) |
|
||||||
|
|||||||
@@ -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) |
|
||||||
|
|||||||
@@ -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
@@ -154,7 +154,7 @@ Phases **0–2** 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
@@ -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`.
|
||||||
|
|||||||
@@ -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 |
|
||||||
|
|||||||
Reference in New Issue
Block a user