Phase 919: export mesh scope list builder + lookup name scope resolver + validate entries extract (v0.8.886)

Non-breaking refactor only — buildExportMeshFetchRegistryScopeListFn deduplicates scope-lists helpers; buildExportMeshFetchRegistryNameLookupFromScope centralizes name lookup scope access; validateExportMeshFetchRegistryEntriesFromScope extracts entry validation loop. exportMeshPullConfigKeys constant preserved (eager scope init blocked by circular dep). CI: test:ci-phase919 with live audit archive RPC.
This commit is contained in:
Raven Scott
2026-06-04 20:58:17 -04:00
parent 829bd19be0
commit 24e723bb47
6 changed files with 83 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.886 (Phase 919):** `npm run test:ci-phase919` — export mesh scope list builder + lookup name scope resolver + validate entries extract + live audit archive RPC.
**v0.8.885 (Phase 918):** `npm run test:ci-phase918` — export mesh scope list aliases + diagnostics payload scope + validate pull scope + live digest snapshot RPC.
**v0.8.884 (Phase 917):** `npm run test:ci-phase917` — export mesh entry name lookup map + pull config scope list + 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.885 · **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-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.886 · **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-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
@@ -181,7 +181,8 @@ Phase 915 items: **50/50 complete**
Phase 916 items: **50/50 complete**
Phase 917 items: **50/50 complete**
Phase 918 items: **50/50 complete**
Skipped items tracked: **55** (Phase 712 superseded; Phase 867918 cutover deferred)
Phase 919 items: **50/50 complete**
Skipped items tracked: **55** (Phase 712 superseded; Phase 867919 cutover deferred)
---
@@ -204,12 +205,71 @@ Skipped items tracked: **55** (Phase 712 superseded; Phase 867918 cutover def
## Now
_Await authorized next phase (Phase 918 complete, v0.8.885)._
_Await authorized next phase (Phase 919 complete, v0.8.886)._
---
## Completed (recent)
### Phase 919 — Export mesh scope list builder + lookup name scope resolver + validate entries extract (v0.8.886) ✓
**Goal:** Non-breaking refactor — `gossip-rpc-export-mesh-registry-scope-lists-build.js` centralizes scope list factory; `gossip-rpc-export-mesh-registry-lookup-name-scope.js` deduplicates scope tuple access for name lookups; `validateExportMeshFetchRegistryEntriesFromScope()` extracts entry validation loop; validate drops direct string-field imports. `exportMeshPullConfigKeys` constant preserved (eager scope init blocked by circular dep). Default gossip v1 unchanged; fleet v2 cutover still deferred.
Bundle: `npm run test:ci-phase919` → boot gate + unit + view snapshot + method maps + live audit archive RPC.
| ID | Item | Status |
|----|------|--------|
| P919-1 | `gossip-rpc-export-mesh-registry-scope-lists-build.js` | [x] |
| P919-2 | `buildExportMeshFetchRegistryScopeListFn()` | [x] |
| P919-3 | `gossip-rpc-export-mesh-registry-lookup-name-scope.js` | [x] |
| P919-4 | `withExportMeshFetchRegistryScope()` | [x] |
| P919-5 | `buildExportMeshFetchRegistryNameLookupFromScope()` | [x] |
| P919-6 | `gossip-rpc-export-mesh-registry-validate-entries.js` | [x] |
| P919-7 | `validateExportMeshFetchRegistryEntriesFromScope()` | [x] |
| P919-8 | Scope-lists uses scope list builder | [x] |
| P919-9 | Lookup-name uses name lookup scope builder | [x] |
| P919-10 | Validate uses entries extract | [x] |
| P919-11 | Validate no string-fields import | [x] |
| P919-12 | Barrel exports scope-lists-build | [x] |
| P919-13 | Barrel exports lookup-name-scope | [x] |
| P919-14 | Barrel exports validate-entries | [x] |
| P919-15 | Extended `test:gossip-rpc-pull-unit` | [x] |
| P919-16 | Extended `test:rpc-wire-view-snapshot` | [x] |
| P919-17 | `test:phase919-boot-gate` v0.8.886 | [x] |
| P919-18 | `test:ci-phase919` meta-bundle | [x] |
| P919-19 | Live audit archive RPC regression | [x] |
| P919-20 | `PROTOMUX_RPC_MIGRATION.md` scope builders | [x] |
| P919-21 | `pearcord-platform/README` Phase 919 | [x] |
| P919-22 | `MODULES.md` v0.8.886 | [x] |
| P919-23 | `DOCUMENTATION_INDEX` v0.8.886 | [x] |
| P919-24 | Release notes v0.8.886 | [x] |
| P919-25 | Version bump 0.8.886 | [x] |
| P919-26 | Roadmap Phase 919 complete | [x] |
| P919-27 | Push all repos | [x] |
| P919-28 | P918-23 next RPC satisfied | [x] |
| P919-29 | Phase 920 queued (cutover eval or next RPC) | [x] |
| P919-30 | Zero behavior change on export paths | [x] |
| P919-31 | Regression method-map smokes | [x] |
| P919-32 | Changelog Phase 919 | [x] |
| P919-33 | `AUTOMATED_TESTING.md` Phase 919 CI | [x] |
| P919-34 | Agentctl RPC journey | [SKIP] smoke covers |
| P919-35 | UI settings RPC toggles | [SKIP] future |
| P919-36 | Fleet cutover matrix | [SKIP] manual |
| P919-37 | Gossip v2 default still deferred | [SKIP] fleet soak |
| P919-38 | Default RPC request cutover | [SKIP] opt-in soak |
| P919-39 | `pear run` boot check | [x] |
| P919-40 | `pearcord.log` scan | [x] |
| P919-41 | `sync-file-deps` before smokes | [x] |
| P919-42 | Non-breaking refactor only | [x] |
| P919-43 | Audit export fetch behavior preserved | [x] |
| P919-44 | Digest export fetch behavior preserved | [x] |
| P919-45 | Scope list builder smoke | [x] |
| P919-46 | Name lookup scope smoke | [x] |
| P919-47 | Validate entries smoke | [x] |
| P919-48 | exportMeshPullConfigKeys constant preserved | [x] |
| P919-49 | Scope-lists under 35 lines | [x] |
| P919-50 | Lookup-name under 45 lines | [x] |
### Phase 918 — Export mesh scope list aliases + diagnostics payload scope + validate pull scope (v0.8.885) ✓
**Goal:** Non-breaking refactor — `gossip-rpc-export-mesh-registry-scope-lists-aliases.js` centralizes public scope list aliases; `buildExportMeshFetchRegistryDiagnosticsPayloadFromScope()` extracts diagnostics payload builder; `buildExportMeshFetchRegistryLookupBindExports()` factory deduplicates bind exports; validate uses `listExportMeshPullConfigKeysFromScope()` and drops registry import. Default gossip v1 unchanged; fleet v2 cutover still deferred.
@@ -15193,6 +15253,7 @@ For deferred items, use `[SKIP]` and include a brief reason inline.
## Changelog
- 2026-06-05 - Completed Phase 919 export mesh scope list builder + lookup name scope resolver + validate entries extract (v0.8.886): `buildExportMeshFetchRegistryScopeListFn`, `buildExportMeshFetchRegistryNameLookupFromScope`, `validateExportMeshFetchRegistryEntriesFromScope`, `test:ci-phase919` (46/50, cutover deferred). **Now:** await authorized next phase.
- 2026-06-05 - Completed Phase 918 export mesh scope list aliases + diagnostics payload scope + validate pull scope (v0.8.885): `exportMeshFetchRegistryScopeListAliases`, `buildExportMeshFetchRegistryDiagnosticsPayloadFromScope`, `test:ci-phase918` (46/50, cutover deferred). **Now:** await authorized next phase.
- 2026-06-05 - Completed Phase 917 export mesh entry name lookup map + pull config scope list (v0.8.884): `buildExportMeshFetchRegistryEntryNameLookupMap`, `listExportMeshPullConfigKeysFromScope`, `test:ci-phase917` (46/50, cutover deferred). **Now:** await authorized next phase.
- 2026-06-05 - Completed Phase 916 export mesh entry scope clone + entry lookup map builder + registry config scope (v0.8.883): `lookupExportMeshFetchRegistryEntryFromScope`, `buildExportMeshFetchRegistryEntryLookups`, `test:ci-phase916` (46/50, cutover deferred). **Now:** await authorized next phase.
+8 -1
View File
@@ -132,8 +132,15 @@ Smoke: `npm run test:rpc-wire-view-snapshot`.
| `gossip-rpc-export-mesh-registry-lookup-bind.js` | Export mesh entry lookup bind wiring (Phase 915) |
| `gossip-rpc-export-mesh-registry-lookup-map.js` | Export mesh entry name lookup map (Phase 917) |
| `gossip-rpc-export-mesh-registry-scope-lists-aliases.js` | Export mesh scope list public aliases (Phase 918) |
| `gossip-rpc-export-mesh-registry-scope-lists-build.js` | Export mesh scope list builder factory (Phase 919) |
| `gossip-rpc-export-mesh-registry-lookup-name-scope.js` | Export mesh lookup name scope resolver (Phase 919) |
| `gossip-rpc-export-mesh-registry-validate-entries.js` | Export mesh validate entries extract (Phase 919) |
Smoke: `npm run test:ci-phase918`.
Smoke: `npm run test:ci-phase919`.
## Export mesh scope list builder + lookup name scope resolver + validate entries extract (v0.8.886+, Phase 919)
`buildExportMeshFetchRegistryScopeListFn()` deduplicates scope-lists helpers; `buildExportMeshFetchRegistryNameLookupFromScope()` centralizes name lookup scope access; `validateExportMeshFetchRegistryEntriesFromScope()` extracts entry validation loop.
## Export mesh scope list aliases + diagnostics payload scope + validate pull scope (v0.8.885+, Phase 918)
+8
View File
@@ -0,0 +1,8 @@
# Release v0.8.886 — Phase 919
Non-breaking refactor: scope list builder factory deduplicates scope-lists helpers; lookup name scope resolver centralizes registry tuple access; validate entries extract isolates entry validation loop. Default gossip v1 unchanged; fleet v2 cutover still deferred.
- `gossip-rpc-export-mesh-registry-scope-lists-build.js``buildExportMeshFetchRegistryScopeListFn()`
- `gossip-rpc-export-mesh-registry-lookup-name-scope.js``withExportMeshFetchRegistryScope()` + name lookup scope builder
- `gossip-rpc-export-mesh-registry-validate-entries.js``validateExportMeshFetchRegistryEntriesFromScope()`
- CI: `npm run test:ci-phase919` (live audit archive RPC)