Phase 954 docs: validate e2e smoke harness (v0.8.921)

Update roadmap, release notes, AUTOMATED_TESTING e2e section, and module
indexes for export mesh registry validate-e2e harness and CI bundle.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-06-04 23:02:41 -04:00
co-authored by Cursor
parent 889bc04f06
commit 3241f4c6c6
7 changed files with 76 additions and 56 deletions
+4
View File
@@ -6,6 +6,10 @@ Pearcord validates itself without manual QA.
**v0.8.837 (Phase 870):** `npm run test:ci-phase870` — media mesh protomux-rpc attach live (`PEARCORD_MEDIA_RPC_WIRE=1`) + attach/voice regression + `test:ci-phase869`.
**v0.8.921 (Phase 954):** `npm run test:ci-phase954` — export mesh registry validate e2e smoke harness + agentctl journey stub + live audit archive RPC.
**E2E validate (Phase 954):** `npm run test:export-mesh-registry-validate-e2e` — runs `runExportMeshFetchRegistryValidateE2e()` alignment + coverage chain. Agentctl stub: `npm run test:agentctl-export-mesh-journey-stub`.
**v0.8.920 (Phase 953):** `npm run test:ci-phase953` — export mesh validate fields/unique facade merge + live digest snapshot RPC.
**v0.8.919 (Phase 952):** `npm run test:ci-phase952` — export mesh bind handler registry extract + live audit archive RPC.
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -2,7 +2,7 @@
All **`pearcord-*`** packages under `modules/`. Each has its own Gitea repo and a **module README** with API tables, P2P topics, and examples.
**App release:** v0.8.920 · **Platform facade:** `pearcord-platform` ([PLATFORM_MIXINS.md](./PLATFORM_MIXINS.md)) · **Automation:** `pearcord-ui-flow` + `pearcord-agentctl` · **Full index:** [DOCUMENTATION_INDEX.md](./DOCUMENTATION_INDEX.md). Wire: [PROTOMUX_RPC_MIGRATION.md](./PROTOMUX_RPC_MIGRATION.md) (`test:ci-phase953`, `test:ci-phase952`, `test:ci-phase951`, `test:ci-phase950`, `test:ci-phase949`, `test:ci-phase948`, `test:ci-phase947`, `test:ci-phase946`, `test:ci-phase945`, `test:ci-phase944`, `test:ci-phase943`, `test:ci-phase942`, `test:ci-phase941`, `test:ci-phase940`, `test:ci-phase939`, `test:ci-phase938`, `test:ci-phase937`, `test:ci-phase936`, `test:ci-phase935`, `test:ci-phase934`, `test:ci-phase933`, `test:ci-phase932`, `test:ci-phase931`, `test:ci-phase930`, `test:ci-phase929`, `test:ci-phase928`, `test:ci-phase927`, `test:ci-phase926`, `test:ci-phase925`, `test:ci-phase924`, `test:ci-phase923`, `test:ci-phase922`, `test:ci-phase921`, `test:ci-phase920`, `test:ci-phase919`, `test:ci-phase918`, `test:ci-phase917`, `test:ci-phase916`, `test:ci-phase901`, `test:ci-phase900`, `test:ci-phase899`, `test:ci-phase898`, `test:ci-phase897`, `test:ci-phase896`, `test:ci-phase895`, `test:ci-phase894`, `test:ci-phase893`, `test:ci-phase892`, `test:ci-phase891`, `test:ci-phase890`, `test:ci-phase889`, `test:ci-phase888`, `test:ci-phase887`, `test:ci-phase886`, `test:ci-phase885`, `test:ci-phase884`, `test:ci-phase883`, `test:ci-phase882`, `test:ci-phase870`, `test:ci-phase869`, `test:ci-phase868`, `test:ci-phase867`). Guild mesh: [PRODUCTION_MESH.md](./PRODUCTION_MESH.md) (`test:ci-phase866`, `test:ci-phase865`, `test:ci-phase864`, `test:ci-phase863`, `test:ci-phase862`, `test:ci-phase861`, `test:ci-phase860`, `test:ci-phase859`, `test:ci-phase858`, `test:ci-phase857`, `test:ci-phase856`, `test:ci-phase855`, `test:ci-phase854`, `test:ci-phase853`, `test:ci-phase852`, `test:ci-phase851`, `test:ci-phase850`, `test:ci-phase849`, `test:ci-phase848`, `test:ci-phase847`, `test:ci-phase846`, `test:ci-phase845`, `test:ci-phase844`, `test:ci-phase843`, `test:ci-phase842`, `test:ci-phase841`, `test:ci-phase840`, `test:ci-phase839`, `test:ci-phase838`, `test:ci-phase837`, `test:ci-phase836`, `test:ci-phase835`, `test:ci-phase834`, `test:ci-phase833`, `test:ci-phase832`, `test:ci-phase831`, `test:ci-phase830`, `test:ci-phase829`, `test:ci-phase828`, `test:ci-phase827`, `test:ci-phase826`, `test:ci-phase825`, `test:ci-phase824`, `test:ci-phase823`, `test:ci-phase822`, `test:ci-phase821`, `test:ci-phase820`, `test:ci-phase819`, `test:ci-phase818`, `test:ci-phase817`, `test:ci-phase816`, `test:ci-phase815`, `test:ci-phase814`, `test:ci-phase813`, `test:ci-phase812`, `test:ci-phase811`, `test:ci-phase810`, `test:ci-phase809`, `test:ci-phase808`, `test:ci-phase807`, `test:ci-phase806`, `test:ci-phase805`, `test:ci-phase804`, `test:ci-phase803`, `test:ci-phase802`, `test:ci-phase801`, `test:ci-phase800`, `test:ci-phase799`, `test:ci-phase798`, `test:ci-phase797`, `test:ci-phase796`, `test:ci-phase795`, `test:ci-phase794`, `test:ci-phase793`, `test:ci-phase792`, `test:ci-phase791`, `test:ci-phase790`, `test:ci-phase789`, `test:ci-phase788`, `test:ci-phase787`, `test:ci-phase786`, `test:ci-phase785`, `test:ci-phase784`, `test:ci-phase783`, `test:ci-phase782`, `test:ci-phase781`, `test:ci-phase780`). Members: [MEMBERS.md](./MEMBERS.md). Settings/roles/permissions: [SETTINGS.md](./SETTINGS.md), [ROLE_EDITOR.md](./ROLE_EDITOR.md), [PERMISSIONS.md](./PERMISSIONS.md).
**App release:** v0.8.921 · **Platform facade:** `pearcord-platform` ([PLATFORM_MIXINS.md](./PLATFORM_MIXINS.md)) · **Automation:** `pearcord-ui-flow` + `pearcord-agentctl` · **Full index:** [DOCUMENTATION_INDEX.md](./DOCUMENTATION_INDEX.md). Wire: [PROTOMUX_RPC_MIGRATION.md](./PROTOMUX_RPC_MIGRATION.md) (`test:ci-phase954`, `test:ci-phase953`, `test:ci-phase952`, `test:ci-phase951`, `test:ci-phase950`, `test:ci-phase949`, `test:ci-phase948`, `test:ci-phase947`, `test:ci-phase946`, `test:ci-phase945`, `test:ci-phase944`, `test:ci-phase943`, `test:ci-phase942`, `test:ci-phase941`, `test:ci-phase940`, `test:ci-phase939`, `test:ci-phase938`, `test:ci-phase937`, `test:ci-phase936`, `test:ci-phase935`, `test:ci-phase934`, `test:ci-phase933`, `test:ci-phase932`, `test:ci-phase931`, `test:ci-phase930`, `test:ci-phase929`, `test:ci-phase928`, `test:ci-phase927`, `test:ci-phase926`, `test:ci-phase925`, `test:ci-phase924`, `test:ci-phase923`, `test:ci-phase922`, `test:ci-phase921`, `test:ci-phase920`, `test:ci-phase919`, `test:ci-phase918`, `test:ci-phase917`, `test:ci-phase916`, `test:ci-phase901`, `test:ci-phase900`, `test:ci-phase899`, `test:ci-phase898`, `test:ci-phase897`, `test:ci-phase896`, `test:ci-phase895`, `test:ci-phase894`, `test:ci-phase893`, `test:ci-phase892`, `test:ci-phase891`, `test:ci-phase890`, `test:ci-phase889`, `test:ci-phase888`, `test:ci-phase887`, `test:ci-phase886`, `test:ci-phase885`, `test:ci-phase884`, `test:ci-phase883`, `test:ci-phase882`, `test:ci-phase870`, `test:ci-phase869`, `test:ci-phase868`, `test:ci-phase867`). Guild mesh: [PRODUCTION_MESH.md](./PRODUCTION_MESH.md) (`test:ci-phase866`, `test:ci-phase865`, `test:ci-phase864`, `test:ci-phase863`, `test:ci-phase862`, `test:ci-phase861`, `test:ci-phase860`, `test:ci-phase859`, `test:ci-phase858`, `test:ci-phase857`, `test:ci-phase856`, `test:ci-phase855`, `test:ci-phase854`, `test:ci-phase853`, `test:ci-phase852`, `test:ci-phase851`, `test:ci-phase850`, `test:ci-phase849`, `test:ci-phase848`, `test:ci-phase847`, `test:ci-phase846`, `test:ci-phase845`, `test:ci-phase844`, `test:ci-phase843`, `test:ci-phase842`, `test:ci-phase841`, `test:ci-phase840`, `test:ci-phase839`, `test:ci-phase838`, `test:ci-phase837`, `test:ci-phase836`, `test:ci-phase835`, `test:ci-phase834`, `test:ci-phase833`, `test:ci-phase832`, `test:ci-phase831`, `test:ci-phase830`, `test:ci-phase829`, `test:ci-phase828`, `test:ci-phase827`, `test:ci-phase826`, `test:ci-phase825`, `test:ci-phase824`, `test:ci-phase823`, `test:ci-phase822`, `test:ci-phase821`, `test:ci-phase820`, `test:ci-phase819`, `test:ci-phase818`, `test:ci-phase817`, `test:ci-phase816`, `test:ci-phase815`, `test:ci-phase814`, `test:ci-phase813`, `test:ci-phase812`, `test:ci-phase811`, `test:ci-phase810`, `test:ci-phase809`, `test:ci-phase808`, `test:ci-phase807`, `test:ci-phase806`, `test:ci-phase805`, `test:ci-phase804`, `test:ci-phase803`, `test:ci-phase802`, `test:ci-phase801`, `test:ci-phase800`, `test:ci-phase799`, `test:ci-phase798`, `test:ci-phase797`, `test:ci-phase796`, `test:ci-phase795`, `test:ci-phase794`, `test:ci-phase793`, `test:ci-phase792`, `test:ci-phase791`, `test:ci-phase790`, `test:ci-phase789`, `test:ci-phase788`, `test:ci-phase787`, `test:ci-phase786`, `test:ci-phase785`, `test:ci-phase784`, `test:ci-phase783`, `test:ci-phase782`, `test:ci-phase781`, `test:ci-phase780`). Members: [MEMBERS.md](./MEMBERS.md). Settings/roles/permissions: [SETTINGS.md](./SETTINGS.md), [ROLE_EDITOR.md](./ROLE_EDITOR.md), [PERMISSIONS.md](./PERMISSIONS.md).
| Package | Path | Status | Primary doc | Module README |
|---------|------|--------|-------------|---------------|
+53 -52
View File
@@ -11,7 +11,7 @@ Active roadmap for Pearcord development. Update checkboxes as phases land.
**Legend:** `[ ]` not started · `[x]` complete · `[SKIP]` deferred (reason required)
Unfinished items tracked: **100**
Unfinished items tracked: **52**
Platform carryover tracked: **0**
Phase 931 items: **50/50 complete**
Phase 932 items: **50/50 complete**
@@ -36,7 +36,7 @@ Phase 950 items: **50/50 complete**
Phase 951 items: **50/50 complete**
Phase 952 items: **50/50 complete**
Phase 953 items: **50/50 complete**
Phase 954 items: **0/50 complete**
Phase 954 items: **48/50 complete**
Phase 955 items: **0/50 complete**
---
@@ -62,7 +62,7 @@ Phase 955 items: **0/50 complete**
## Now
**Active:** Phase 954 (v0.8.921) — export mesh registry end-to-end validate smoke harness extend. Autonomous track continues through Phase 955.
**Active:** Phase 955 (v0.8.922) — export mesh modularization track closure + rotation prep. Autonomous track continues through Phase 955.
### Phase 931 — Export mesh lookup-bind exports extract + lookup-map scope adoption (0.8.898) ✓
@@ -1427,7 +1427,7 @@ Bundle: `npm run test:ci-phase953` → boot gate + unit + view snapshot + method
| P953-49 | Regression `test:ci-phase952` | [SKIP] version-locked boot; shared smokes in `test:ci-phase953` |
| P953-50 | Phase 954 queued | [x] |
### Phase 954 — Export mesh registry end-to-end validate smoke harness extend (0.8.921)
### Phase 954 — Export mesh registry end-to-end validate smoke harness extend (0.8.921)
**Goal:** Non-breaking refactor — e2e validate alignment + coverage smoke script. Gossip v2-only unchanged.
@@ -1435,56 +1435,56 @@ Bundle: `npm run test:ci-phase954` → boot gate + unit + view snapshot + method
| ID | Item | Status |
|----|------|--------|
| P954-1 | `smoke-export-mesh-registry-validate-e2e.cjs` | [ ] |
| P954-2 | E2E validate alignment + coverage smoke | [ ] |
| P954-3 | Agentctl export mesh journey stub | [ ] |
| P954-4 | test:ci-phase954 includes e2e validate | [ ] |
| P954-5 | AUTOMATED_TESTING.md e2e section | [ ] |
| P954-6 | Boot gate e2e smoke registered | [ ] |
| P954-7 | Validate-alignment smoke passes | [ ] |
| P954-8 | Validate-coverage smoke passes | [ ] |
| P954-9 | E2E script under 120 lines | [ ] |
| P954-10 | Boot gate e2e validate check | [ ] |
| P954-11 | Import chain smoke passes | [ ] |
| P954-12 | Regression `test:ci-phase953` | [ ] |
| P954-13 | E2E harness registered in package.json | [ ] |
| P954-14 | Phase 954 refactor verification item 14 | [ ] |
| P954-15 | Phase 954 refactor verification item 15 | [ ] |
| P954-16 | Barrel exports Phase 954 modules | [ ] |
| P954-17 | Barrel spread unchanged externally | [ ] |
| P954-18 | Extended `test:gossip-rpc-pull-unit` | [ ] |
| P954-19 | Extended `test:rpc-wire-view-snapshot` | [ ] |
| P954-20 | `test:phase954-boot-gate` 0.8.921 | [ ] |
| P954-21 | `test:ci-phase954` meta-bundle | [ ] |
| P954-22 | Live audit archive RPC regression | [ ] |
| P954-23 | `PROTOMUX_RPC_MIGRATION.md` Phase 954 modules | [ ] |
| P954-24 | `pearcord-platform/README` Phase 954 | [ ] |
| P954-25 | `MODULES.md` 0.8.921 | [ ] |
| P954-26 | `DOCUMENTATION_INDEX` 0.8.921 | [ ] |
| P954-27 | Release notes 0.8.921 | [ ] |
| P954-28 | Version bump 0.8.921 | [ ] |
| P954-29 | Roadmap Phase 954 complete | [ ] |
| P954-30 | Push all repos | [ ] |
| P954-31 | `AUTOMATED_TESTING.md` Phase 954 CI | [ ] |
| P954-32 | Changelog Phase 954 | [ ] |
| P954-33 | `sync-file-deps` before smokes | [ ] |
| P954-34 | Zero behavior change on export paths | [ ] |
| P954-35 | Regression method-map smokes | [ ] |
| P954-36 | `pear run` boot check | [ ] |
| P954-37 | `pearcord.log` scan | [ ] |
| P954-1 | `smoke-export-mesh-registry-validate-e2e.cjs` | [x] |
| P954-2 | E2E validate alignment + coverage smoke | [x] |
| P954-3 | Agentctl export mesh journey stub | [x] |
| P954-4 | test:ci-phase954 includes e2e validate | [x] |
| P954-5 | AUTOMATED_TESTING.md e2e section | [x] |
| P954-6 | Boot gate e2e smoke registered | [x] |
| P954-7 | Validate-alignment smoke passes | [x] |
| P954-8 | Validate-coverage smoke passes | [x] |
| P954-9 | E2E script under 120 lines | [x] |
| P954-10 | Boot gate e2e validate check | [x] |
| P954-11 | Import chain smoke passes | [x] |
| P954-12 | Regression `test:ci-phase953` | [SKIP] |
| P954-13 | E2E harness registered in package.json | [x] |
| P954-14 | Phase 954 refactor verification item 14 | [x] |
| P954-15 | Phase 954 refactor verification item 15 | [x] |
| P954-16 | Barrel exports Phase 954 modules | [x] |
| P954-17 | Barrel spread unchanged externally | [x] |
| P954-18 | Extended `test:gossip-rpc-pull-unit` | [x] |
| P954-19 | Extended `test:rpc-wire-view-snapshot` | [x] |
| P954-20 | `test:phase954-boot-gate` 0.8.921 | [x] |
| P954-21 | `test:ci-phase954` meta-bundle | [x] |
| P954-22 | Live audit archive RPC regression | [x] |
| P954-23 | `PROTOMUX_RPC_MIGRATION.md` Phase 954 modules | [x] |
| P954-24 | `pearcord-platform/README` Phase 954 | [x] |
| P954-25 | `MODULES.md` 0.8.921 | [x] |
| P954-26 | `DOCUMENTATION_INDEX` 0.8.921 | [x] |
| P954-27 | Release notes 0.8.921 | [x] |
| P954-28 | Version bump 0.8.921 | [x] |
| P954-29 | Roadmap Phase 954 complete | [x] |
| P954-30 | Push all repos | [x] |
| P954-31 | `AUTOMATED_TESTING.md` Phase 954 CI | [x] |
| P954-32 | Changelog Phase 954 | [x] |
| P954-33 | `sync-file-deps` before smokes | [x] |
| P954-34 | Zero behavior change on export paths | [x] |
| P954-35 | Regression method-map smokes | [x] |
| P954-36 | `pear run` boot check | [x] |
| P954-37 | `pearcord.log` scan | [x] |
| P954-38 | Agentctl RPC journey | [SKIP] smoke covers |
| P954-39 | UI settings RPC toggles | [SKIP] future |
| P954-40 | Pull dispatch unchanged | [ ] |
| P954-41 | View snapshot unchanged | [ ] |
| P954-42 | Platform mixin builder unchanged | [ ] |
| P954-43 | Mixin method keys preserved | [ ] |
| P954-44 | Boot gate Phase 954 closure check | [ ] |
| P954-45 | Export mesh module line count check | [ ] |
| P954-46 | Pull config keys preserved | [ ] |
| P954-47 | Registry keys preserved | [ ] |
| P954-48 | Gossip v2-only unchanged | [ ] |
| P954-49 | Regression `test:ci-phase953` | [ ] |
| P954-50 | Phase 955 queued | [ ] |
| P954-40 | Pull dispatch unchanged | [x] |
| P954-41 | View snapshot unchanged | [x] |
| P954-42 | Platform mixin builder unchanged | [x] |
| P954-43 | Mixin method keys preserved | [x] |
| P954-44 | Boot gate Phase 954 closure check | [x] |
| P954-45 | Export mesh module line count check | [x] |
| P954-46 | Pull config keys preserved | [x] |
| P954-47 | Registry keys preserved | [x] |
| P954-48 | Gossip v2-only unchanged | [x] |
| P954-49 | Regression `test:ci-phase953` | [SKIP] |
| P954-50 | Phase 955 queued | [x] |
### Phase 955 — Export mesh modularization track closure + rotation prep (0.8.922)
@@ -1567,6 +1567,7 @@ When rotating a full roadmap cycle (all phases complete), rename this file to `P
## Changelog
- 2026-06-05 - Completed Phase 954 export mesh registry end-to-end validate smoke harness extend (v0.8.921): validate-e2e module, smoke-export-mesh-registry-validate-e2e, agentctl journey stub, test:ci-phase954 (48/50, P954-12/P954-49 version-boot SKIP). **Now:** Phase 955.
- 2026-06-05 - Completed Phase 953 export mesh validate fields/unique facade merge + entries import chain verify (v0.8.920): validate-fields-unique, test:ci-phase953 (48/50, P953-12/P953-49 version-boot SKIP). **Now:** Phase 954.
- 2026-06-05 - Completed Phase 952 export mesh bind handler registry extract + mixin wire bind split (v0.8.919): bind-handlers, test:ci-phase952 (48/50, P952-12/P952-49 version-boot SKIP). **Now:** Phase 953.
- 2026-06-05 - Completed Phase 951 export mesh scope-lists derive registry extract + alias spread helper (v0.8.918): scope-lists-derive, test:ci-phase951 (48/50, P951-12/P951-49 version-boot SKIP). **Now:** Phase 952.
+8 -1
View File
@@ -196,8 +196,15 @@ Smoke: `npm run test:rpc-wire-view-snapshot`.
| `gossip-rpc-export-mesh-registry-scope-lists-derive.js` | Export mesh scope list derive registry + spread (Phase 951) |
| `gossip-rpc-export-mesh-bind-handlers.js` | Export mesh bind handler map (mixin + gossip wire) (Phase 952) |
| `gossip-rpc-export-mesh-registry-validate-fields-unique.js` | Export mesh validate fields + unique facade (Phase 953) |
| `gossip-rpc-export-mesh-registry-validate-e2e.js` | Export mesh registry end-to-end validate chain (Phase 954) |
Smoke: `npm run test:ci-phase953`.
Smoke: `npm run test:ci-phase954`.
## Export mesh registry end-to-end validate smoke harness extend (v0.8.921+, Phase 954)
`runExportMeshFetchRegistryValidateE2e()` centralizes entries + alignment + coverage validation for smokes and agentctl journey stub.
Smoke: `npm run test:ci-phase954`, `npm run test:export-mesh-registry-validate-e2e`.
## Export mesh validate fields/unique facade merge + entries import chain verify (v0.8.920+, Phase 953)
+1 -1
View File
@@ -2,7 +2,7 @@
Documentation for **[Pearcord](https://git.ssh.surf/pearcord)** — a 100% peer-to-peer community chat app on [Pear](https://pear.holepunch.to). No central message servers.
**Current release:** v0.8.920 (desktop app `apps/pearcord`). Recent doc sync: [DOC_AUDIT_2026-06.md](./DOC_AUDIT_2026-06.md).
**Current release:** v0.8.921 (desktop app `apps/pearcord`). Recent doc sync: [DOC_AUDIT_2026-06.md](./DOC_AUDIT_2026-06.md).
---
+8
View File
@@ -0,0 +1,8 @@
# Release v0.8.921 — Phase 954
Non-breaking refactor: export mesh registry end-to-end validate smoke harness extend.
- `gossip-rpc-export-mesh-registry-validate-e2e.js``runExportMeshFetchRegistryValidateE2e()` chains entries, alignment, and coverage validation
- `smoke-export-mesh-registry-validate-e2e.cjs` — dedicated e2e validate smoke
- `runExportMeshRegistryValidateJourney()` agentctl headless journey stub
- CI: `npm run test:ci-phase954`