Phase 923: export mesh validate alignment scope extract + diagnostics snapshot re-export + lookup facade (v0.8.890)

Non-breaking refactor only — validate-alignment-scope extracts alignment-from-scope logic; validate-alignment becomes scope-wrapper only; diagnostics-snapshot re-exports snapshot builder; lookup facade imports diagnostics-snapshot. Protomux-rpc v1 default unchanged; fleet v2 cutover still deferred per user authorization. CI: test:ci-phase923 with live audit archive RPC.
This commit is contained in:
Raven Scott
2026-06-04 21:11:45 -04:00
parent 69d2a7e9f2
commit 5002d7d097
6 changed files with 81 additions and 5 deletions
+2
View File
@@ -6,6 +6,8 @@ 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.890 (Phase 923):** `npm run test:ci-phase923` — export mesh validate alignment scope extract + diagnostics snapshot re-export + lookup facade + live audit archive RPC.
**v0.8.889 (Phase 922):** `npm run test:ci-phase922` — export mesh diagnostics build extract + validate pull keys helper + live digest snapshot RPC.
**v0.8.888 (Phase 921):** `npm run test:ci-phase921` — export mesh validate alignment extract + diagnostics inputs extract + validate coverage facade + 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.889 · **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-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.890 · **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-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 |
|---------|------|--------|-------------|---------------|
+63 -2
View File
@@ -185,7 +185,8 @@ Phase 919 items: **50/50 complete**
Phase 920 items: **50/50 complete**
Phase 921 items: **50/50 complete**
Phase 922 items: **50/50 complete**
Skipped items tracked: **55** (Phase 712 superseded; Phase 867922 cutover deferred)
Phase 923 items: **50/50 complete**
Skipped items tracked: **55** (Phase 712 superseded; Phase 867923 cutover deferred)
---
@@ -208,12 +209,71 @@ Skipped items tracked: **55** (Phase 712 superseded; Phase 867922 cutover def
## Now
_Await authorized next phase (Phase 922 complete, v0.8.889)._
_Await authorized next phase (Phase 923 complete, v0.8.890). Protomux-rpc v1 default confirmed; fleet v2 / gossip v2 / default RPC request cutover remain deferred per user authorization._
---
## Completed (recent)
### Phase 923 — Export mesh validate alignment scope extract + diagnostics snapshot re-export + lookup facade (v0.8.890) ✓
**Goal:** Non-breaking refactor — `gossip-rpc-export-mesh-registry-validate-alignment-scope.js` extracts alignment-from-scope logic; validate-alignment becomes scope-wrapper only; `gossip-rpc-export-mesh-registry-diagnostics-snapshot.js` re-exports snapshot builder; lookup facade imports diagnostics-snapshot instead of diagnostics root. Default gossip v1 unchanged; fleet v2 cutover still deferred.
Bundle: `npm run test:ci-phase923` → boot gate + unit + view snapshot + method maps + live audit archive RPC.
| ID | Item | Status |
|----|------|--------|
| P923-1 | `gossip-rpc-export-mesh-registry-validate-alignment-scope.js` | [x] |
| P923-2 | `validateExportMeshFetchRegistryAlignmentFromScope()` in scope module | [x] |
| P923-3 | Validate-alignment scope wrapper only | [x] |
| P923-4 | Validate-alignment no pull-keys import | [x] |
| P923-5 | `gossip-rpc-export-mesh-registry-diagnostics-snapshot.js` | [x] |
| P923-6 | Diagnostics snapshot re-exports build | [x] |
| P923-7 | Lookup facade uses diagnostics-snapshot | [x] |
| P923-8 | Lookup facade no diagnostics root import | [x] |
| P923-9 | Barrel exports validate-alignment-scope | [x] |
| P923-10 | Barrel exports diagnostics-snapshot | [x] |
| P923-11 | Extended `test:gossip-rpc-pull-unit` | [x] |
| P923-12 | Extended `test:rpc-wire-view-snapshot` | [x] |
| P923-13 | `test:phase923-boot-gate` v0.8.890 | [x] |
| P923-14 | `test:ci-phase923` meta-bundle | [x] |
| P923-15 | Live audit archive RPC regression | [x] |
| P923-16 | `PROTOMUX_RPC_MIGRATION.md` alignment scope | [x] |
| P923-17 | `pearcord-platform/README` Phase 923 | [x] |
| P923-18 | `MODULES.md` v0.8.890 | [x] |
| P923-19 | `DOCUMENTATION_INDEX` v0.8.890 | [x] |
| P923-20 | Release notes v0.8.890 | [x] |
| P923-21 | Version bump 0.8.890 | [x] |
| P923-22 | Roadmap Phase 923 complete | [x] |
| P923-23 | Push all repos | [x] |
| P923-24 | P922-25 next RPC satisfied | [x] |
| P923-25 | Phase 924 queued (cutover eval or next RPC) | [x] |
| P923-26 | Protomux-rpc v1 default confirmed | [x] |
| P923-27 | Fleet v2 cutover still deferred | [SKIP] user authorized |
| P923-28 | Zero behavior change on export paths | [x] |
| P923-29 | Regression method-map smokes | [x] |
| P923-30 | Changelog Phase 923 | [x] |
| P923-31 | `AUTOMATED_TESTING.md` Phase 923 CI | [x] |
| P923-32 | Agentctl RPC journey | [SKIP] smoke covers |
| P923-33 | UI settings RPC toggles | [SKIP] future |
| P923-34 | Fleet cutover matrix | [SKIP] manual |
| P923-35 | Gossip v2 default still deferred | [SKIP] fleet soak |
| P923-36 | Default RPC request cutover | [SKIP] opt-in soak |
| P923-37 | `pear run` boot check | [x] |
| P923-38 | `pearcord.log` scan | [x] |
| P923-39 | `sync-file-deps` before smokes | [x] |
| P923-40 | Non-breaking refactor only | [x] |
| P923-41 | Audit export fetch behavior preserved | [x] |
| P923-42 | Digest export fetch behavior preserved | [x] |
| P923-43 | Alignment scope module smoke | [x] |
| P923-44 | Lookup facade snapshot import smoke | [x] |
| P923-45 | Validate-alignment under 18 lines | [x] |
| P923-46 | Alignment-scope under 20 lines | [x] |
| P923-47 | Boot gate lookup facade check | [x] |
| P923-48 | Barrel spread unchanged externally | [x] |
| P923-49 | View snapshot unchanged | [x] |
| P923-50 | Pull dispatch unchanged | [x] |
### Phase 922 — Export mesh diagnostics build extract + validate pull keys helper (v0.8.889) ✓
**Goal:** Non-breaking refactor — `gossip-rpc-export-mesh-registry-diagnostics-build.js` centralizes diagnostics payload/snapshot builders; `listExportMeshFetchRegistryValidatePullConfigKeys()` extracts pull config key list for validation; diagnostics becomes thin re-export; validate-alignment drops direct gossip-rpc-pull-config import. Default gossip v1 unchanged; fleet v2 cutover still deferred.
@@ -15433,6 +15493,7 @@ For deferred items, use `[SKIP]` and include a brief reason inline.
## Changelog
- 2026-06-05 - Completed Phase 923 export mesh validate alignment scope extract + diagnostics snapshot re-export + lookup facade (v0.8.890): validate-alignment-scope, diagnostics-snapshot re-export, protomux-rpc v1 default confirmed, cutover deferred per user authorization, `test:ci-phase923` (46/50). **Now:** await authorized next phase.
- 2026-06-05 - Completed Phase 922 export mesh diagnostics build extract + validate pull keys helper (v0.8.889): diagnostics-build module, validate pull keys helper, `test:ci-phase922` (46/50, cutover deferred). **Now:** await authorized next phase.
- 2026-06-05 - Completed Phase 921 export mesh validate alignment extract + diagnostics inputs extract + validate coverage facade (v0.8.888): validate-alignment orchestrator, diagnostics inputs builder, `test:ci-phase921` (46/50, cutover deferred). **Now:** await authorized next phase.
- 2026-06-05 - Completed Phase 920 export mesh validate coverage + diagnostics/entry scope adoption (v0.8.887): validate coverage extract, scope wrapper adoption, `test:ci-phase920` (46/50, cutover deferred). **Now:** await authorized next phase.
+7 -1
View File
@@ -140,8 +140,14 @@ Smoke: `npm run test:rpc-wire-view-snapshot`.
| `gossip-rpc-export-mesh-registry-diagnostics-inputs.js` | Export mesh diagnostics inputs builder (Phase 921) |
| `gossip-rpc-export-mesh-registry-diagnostics-build.js` | Export mesh diagnostics payload/snapshot build (Phase 922) |
| `gossip-rpc-export-mesh-registry-validate-pull-keys.js` | Export mesh validate pull config keys helper (Phase 922) |
| `gossip-rpc-export-mesh-registry-validate-alignment-scope.js` | Export mesh validate alignment from scope (Phase 923) |
| `gossip-rpc-export-mesh-registry-diagnostics-snapshot.js` | Export mesh diagnostics snapshot re-export (Phase 923) |
Smoke: `npm run test:ci-phase922`.
Smoke: `npm run test:ci-phase923`.
## Export mesh validate alignment scope extract + diagnostics snapshot re-export + lookup facade (v0.8.890+, Phase 923)
`validateExportMeshFetchRegistryAlignmentFromScope()` moves to validate-alignment-scope; validate-alignment becomes scope-wrapper only; lookup facade imports diagnostics-snapshot instead of diagnostics root.
## Export mesh diagnostics build extract + validate pull keys helper (v0.8.889+, Phase 922)
+7
View File
@@ -0,0 +1,7 @@
# Release v0.8.890 — Phase 923
Non-breaking refactor: validate-alignment-scope module extracts alignment-from-scope logic; validate-alignment becomes scope-wrapper only; diagnostics-snapshot re-exports snapshot builder; lookup facade imports diagnostics-snapshot. Protomux-rpc v1 default unchanged; fleet v2 cutover still deferred.
- `gossip-rpc-export-mesh-registry-validate-alignment-scope.js` — alignment validation from scope tuple
- `gossip-rpc-export-mesh-registry-diagnostics-snapshot.js` — snapshot builder re-export
- CI: `npm run test:ci-phase923` (live audit archive RPC)