docs(v0.8.70): Phase 106 roadmap, RPC 73/74, and smoke catalog

Document automation digest snapshot mesh fetch, archive peer last-seen timestamps,
worker publish announce+matrix E2E gate, and mark Phase 106 complete with Phase 107 next.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-05-22 05:32:07 -04:00
co-authored by Cursor
parent 80b076fa57
commit 3a3d00ad2d
7 changed files with 33 additions and 2 deletions
+2
View File
@@ -55,6 +55,8 @@ Pearcord records **local audit entries** in HyperDB (`@pearcord/audit-log`) for
**v0.8.69:** Peer picker shows **● mesh** for members with live presence on an active guild mesh (`meshConnected`); offline peers disabled when mesh is live. **v0.8.69:** Peer picker shows **● mesh** for members with live presence on an active guild mesh (`meshConnected`); offline peers disabled when mesh is live.
**v0.8.70:** Peer picker labels include **last seen** timestamps (`@pearcord/archive-peer-seen` + presence `at`). Scheduled automation digest snapshots without local body offer **Fetch from mesh** (RPC 73/74).
## Tests ## Tests
| Script | Marker | | Script | Marker |
+3
View File
@@ -89,6 +89,9 @@ Pearcord validates itself without manual QA.
| `npm run test:audit-archive-peer-mesh-live` | Archive peer mesh indicator (`AUDIT_ARCHIVE_PEER_MESH_LIVE_SMOKE_OK`) | | `npm run test:audit-archive-peer-mesh-live` | Archive peer mesh indicator (`AUDIT_ARCHIVE_PEER_MESH_LIVE_SMOKE_OK`) |
| `npm run test:automation-digest-export-schedule` | Scheduled digest export (`AUTOMATION_DIGEST_EXPORT_SCHEDULE_SMOKE_OK`) | | `npm run test:automation-digest-export-schedule` | Scheduled digest export (`AUTOMATION_DIGEST_EXPORT_SCHEDULE_SMOKE_OK`) |
| `npm run test:worker-publish-matrix` | Publish matrix gate (`WORKER_PUBLISH_MATRIX_GATE_OK`) | | `npm run test:worker-publish-matrix` | Publish matrix gate (`WORKER_PUBLISH_MATRIX_GATE_OK`) |
| `npm run test:automation-digest-snapshot-fetch` | Digest snapshot mesh fetch (`AUTOMATION_DIGEST_SNAPSHOT_FETCH_SMOKE_OK`) |
| `npm run test:archive-peer-last-seen` | Archive peer last seen (`ARCHIVE_PEER_LAST_SEEN_SMOKE_OK`) |
| `npm run test:worker-publish-announce-matrix` | Matrix + announce persist (`WORKER_PUBLISH_ANNOUNCE_MATRIX_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`) |
+7 -1
View File
@@ -149,7 +149,9 @@ Mirrors audit export schedule: `digestExportSchedule` prefs (`enabled`, `interva
| RPC | Value | Payload | | RPC | Value | Payload |
|-----|-------|---------| |-----|-------|---------|
| `AUDIT_EXPORT_ARCHIVE` | 71 | `{ id, guildId, exportedAt, exportedBy?, filter, count, entries[] }` | | `AUDIT_EXPORT_ARCHIVE` | 71 | `{ id, guildId, exportedAt, exportedBy?, filter, count, entries[] }` |
| `AUDIT_EXPORT_ARCHIVE_REQUEST` | 72 | `{ guildId, archiveId, requestId, requestedBy?, at }` — peers with full archive gossip 71 in response | | `AUDIT_EXPORT_ARCHIVE_REQUEST` | 72 | `{ guildId, archiveId, requestId, requestedBy?, targetMemberId?, at }` — peers with full archive gossip 71 in response |
| `AUTOMATION_DIGEST_EXPORT_SNAPSHOT` | 73 | `{ id, guildId, exportedAt, format, summaryLines, body }` — full scheduled digest snapshot |
| `AUTOMATION_DIGEST_EXPORT_SNAPSHOT_REQUEST` | 74 | `{ guildId, snapshotId, requestId, requestedBy?, targetMemberId?, at }` |
Retention: max 8 archives per guild, 30-day prune. `appendAuditExportArchive` merges incoming entries when local row is metadata-only. Retention: max 8 archives per guild, 30-day prune. `appendAuditExportArchive` merges incoming entries when local row is metadata-only.
@@ -163,6 +165,8 @@ Retention: max 8 archives per guild, 30-day prune. `appendAuditExportArchive` me
**v0.8.69:** **Scheduled automation digest export**`automationDigestExportSchedule` prefs, timer saves text/JSON snapshots (max 5), synced on `GUILD_SYNC.automationDigestExportSchedule`. **v0.8.69:** **Scheduled automation digest export**`automationDigestExportSchedule` prefs, timer saves text/JSON snapshots (max 5), synced on `GUILD_SYNC.automationDigestExportSchedule`.
**v0.8.70:** `@pearcord/archive-peer-seen` records `lastSeenAt` on presence/mesh activity for archive peer picker. `fetchAutomationDigestSnapshotFromMesh` on platform. `ingestAutomationDigestExportSnapshot` merges metadata → full body.
## Tests ## Tests
| Script | Validates | | Script | Validates |
@@ -189,6 +193,8 @@ Retention: max 8 archives per guild, 30-day prune. `appendAuditExportArchive` me
| `npm run test:automation-overdue-actions` | Overdue schedule runs → `AUTOMATION_OVERDUE_ACTIONS_SMOKE_OK` | | `npm run test:automation-overdue-actions` | Overdue schedule runs → `AUTOMATION_OVERDUE_ACTIONS_SMOKE_OK` |
| `npm run test:automation-schedule-digest-export` | Schedule digest bundle → `AUTOMATION_SCHEDULE_DIGEST_EXPORT_SMOKE_OK` | | `npm run test:automation-schedule-digest-export` | Schedule digest bundle → `AUTOMATION_SCHEDULE_DIGEST_EXPORT_SMOKE_OK` |
| `npm run test:automation-digest-export-schedule` | Scheduled digest export → `AUTOMATION_DIGEST_EXPORT_SCHEDULE_SMOKE_OK` | | `npm run test:automation-digest-export-schedule` | Scheduled digest export → `AUTOMATION_DIGEST_EXPORT_SCHEDULE_SMOKE_OK` |
| `npm run test:automation-digest-snapshot-fetch` | Digest snapshot mesh body → `AUTOMATION_DIGEST_SNAPSHOT_FETCH_SMOKE_OK` |
| `npm run test:archive-peer-last-seen` | Archive peer `lastSeenAt``ARCHIVE_PEER_LAST_SEEN_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
@@ -40,6 +40,8 @@ When a member joins a guild over an invite, they may have **no local message his
**v0.8.69:** `automationDigestExportSchedule` and `automationDigestExportSnapshots` (metadata) sync scheduled digest export prefs across the mesh. **v0.8.69:** `automationDigestExportSchedule` and `automationDigestExportSnapshots` (metadata) sync scheduled digest export prefs across the mesh.
**v0.8.70:** Metadata-only `automationDigestExportSnapshots` on join; full bodies via `AUTOMATION_DIGEST_EXPORT_SNAPSHOT_REQUEST` (RPC 74) → holder gossips RPC 73 with `body`. Scheduled exports gossip snapshot bodies after each run.
## When sync is sent ## When sync is sent
| Trigger | Who pushes | | Trigger | Who pushes |
+2
View File
@@ -156,6 +156,8 @@ Phases **02** 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. **Next tranches (Phase 106+):** Automation digest snapshot mesh body gossip · archive peer last-seen · publish announce + matrix E2E.
**v0.8.70 (Phase 106):** Automation digest snapshot mesh body fetch (RPC 73/74), archive peer last-seen in picker, worker publish announce + matrix E2E gate.
**v0.8.69 (Phase 105):** Mesh-connected archive peer indicator, scheduled automation digest export, worker publish matrix gate. **v0.8.69 (Phase 105):** Mesh-connected archive peer indicator, scheduled automation digest export, worker publish matrix gate.
**v0.8.68 (Phase 104):** Archive fetch peer picker, worker trial matrix, automation schedule digest export bundle. **v0.8.68 (Phase 104):** Archive fetch peer picker, worker trial matrix, automation schedule digest export bundle.
+15 -1
View File
@@ -294,6 +294,19 @@ When completing work, change `[ ]` → `[x]` and add a one-line note under **Cha
--- ---
### Phase 106 — Digest snapshot mesh fetch, archive peer last-seen & publish announce E2E (v0.8.70)
| ID | Item | Status |
|----|------|--------|
| P106-1 | RPC 73/74 automation digest snapshot gossip + `fetchAutomationDigestSnapshotFromMesh` | [x] |
| P106-2 | `@pearcord/archive-peer-seen` + `lastSeenAt` in archive peer picker UI | [x] |
| P106-3 | `test:worker-publish-announce-matrix` in publish dry-run gate | [x] |
| P106-4 | `test:automation-digest-snapshot-fetch`, `test:archive-peer-last-seen` | [x] |
**Next:** Digest snapshot fetch retry/backoff · archive peer seen mesh sync slice · live E2E digest fetch across two peers.
---
### Phase 105 — Mesh peer indicator, scheduled digest export & publish matrix gate (v0.8.69) ### Phase 105 — Mesh peer indicator, scheduled digest export & publish matrix gate (v0.8.69)
| ID | Item | Status | | ID | Item | Status |
@@ -303,7 +316,7 @@ When completing work, change `[ ]` → `[x]` and add a one-line note under **Cha
| P105-3 | `worker:publish` runs `test:worker-trial-matrix` gate | [x] | | P105-3 | `worker:publish` runs `test:worker-trial-matrix` gate | [x] |
| P105-4 | `test:audit-archive-peer-mesh-live`, `test:automation-digest-export-schedule`, `test:worker-publish-matrix` | [x] | | P105-4 | `test:audit-archive-peer-mesh-live`, `test:automation-digest-export-schedule`, `test:worker-publish-matrix` | [x] |
**Next:** Automation digest snapshot mesh body gossip · archive peer last-seen timestamps · worker publish announce + matrix E2E script. **Next:** ~~Automation digest snapshot mesh body gossip · archive peer last-seen timestamps · worker publish announce + matrix E2E script~~ (Phase 106).
--- ---
@@ -1333,6 +1346,7 @@ When completing work, change `[ ]` → `[x]` and add a one-line note under **Cha
### Changelog ### Changelog
- **2026-05-22** — v0.8.70: automation digest snapshot mesh fetch (RPC 73/74), archive peer `lastSeenAt`, worker publish announce+matrix E2E, `test:automation-digest-snapshot-fetch`, `test:archive-peer-last-seen`, `test:worker-publish-announce-matrix`.
- **2026-05-22** — v0.8.69: mesh-connected archive peer indicator, scheduled automation digest export, worker publish trial matrix gate, `test:audit-archive-peer-mesh-live`, `test:automation-digest-export-schedule`, `test:worker-publish-matrix`. - **2026-05-22** — v0.8.69: mesh-connected archive peer indicator, scheduled automation digest export, worker publish trial matrix gate, `test:audit-archive-peer-mesh-live`, `test:automation-digest-export-schedule`, `test:worker-publish-matrix`.
- **2026-05-22** — v0.8.68: archive fetch peer picker, automation schedule digest export bundle, worker trial matrix, `test:audit-archive-peer-picker`, `test:automation-schedule-digest-export`, `test:worker-trial-matrix`. - **2026-05-22** — v0.8.68: archive fetch peer picker, automation schedule digest export bundle, worker trial matrix, `test:audit-archive-peer-picker`, `test:automation-schedule-digest-export`, `test:worker-trial-matrix`.
- **2026-05-22** — v0.8.67: archive fetch retry/backoff, worker trial receipt assertions, overdue automation dashboard actions, `test:archive-fetch-retry`, `test:automation-overdue-actions`, `test:worker-trial-receipts`. - **2026-05-22** — v0.8.67: archive fetch retry/backoff, worker trial receipt assertions, overdue automation dashboard actions, `test:archive-fetch-retry`, `test:automation-overdue-actions`, `test:worker-trial-receipts`.
+2
View File
@@ -106,6 +106,8 @@ Mods with **Manage Server** can **Announce worker release to guild** in server s
**v0.8.69:** `worker:publish` and dry-run invoke `npm run test:worker-trial-matrix` before release; `test:worker-publish-matrix` validates the gate in CI. **v0.8.69:** `worker:publish` and dry-run invoke `npm run test:worker-trial-matrix` before release; `test:worker-publish-matrix` validates the gate in CI.
**v0.8.70:** Publish dry-run also runs `test:worker-publish-announce-matrix` (trial matrix → `announceWorkerRelease` → persisted hint across reopen).
`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 |