docs: document platform mixin category folder layout
Update PLATFORM_MIXINS and doc drift smoke for mixins/ paths under pearcord-platform. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
+4
-3
@@ -1,6 +1,6 @@
|
|||||||
# Platform mixin architecture (Phase 756+)
|
# Platform mixin architecture (Phase 756+)
|
||||||
|
|
||||||
`PearcordPlatform` in `modules/pearcord-platform` is composed from **prototype mixins** instead of a single monolithic class. Phase 756 reduced the core class to ~900 lines; domain logic lives in `platform-*-mixin.js` modules assigned via manifest.
|
`PearcordPlatform` in `modules/pearcord-platform` is composed from **prototype mixins** instead of a single monolithic class. Phase 756 reduced the core class to ~900 lines; mixin sources live under [`mixins/`](../../modules/pearcord-platform/mixins/README.md) by category (`domain/`, `json-export/`, `runtime/<area>/`).
|
||||||
|
|
||||||
**App release:** v0.8.746 · **Roadmap detail:** [PLATFORM_ROADMAP.md](./PLATFORM_ROADMAP.md) Phases 725–756 · **Module changelog:** `modules/pearcord-platform/README.md`
|
**App release:** v0.8.746 · **Roadmap detail:** [PLATFORM_ROADMAP.md](./PLATFORM_ROADMAP.md) Phases 725–756 · **Module changelog:** `modules/pearcord-platform/README.md`
|
||||||
|
|
||||||
@@ -9,7 +9,8 @@
|
|||||||
| Artifact | Role |
|
| Artifact | Role |
|
||||||
|----------|------|
|
|----------|------|
|
||||||
| `platform-mixin-assign-manifest.js` | **136** assignment rows — maps mixin module + export name onto `PearcordPlatform.prototype` |
|
| `platform-mixin-assign-manifest.js` | **136** assignment rows — maps mixin module + export name onto `PearcordPlatform.prototype` |
|
||||||
| `platform-runtime-mixin-registry.js` | **76** runtime `platform-*` mixins loaded in order (Phases 738–756) |
|
| `platform-runtime-mixin-registry.js` | **76** runtime `platform-*` mixins under `mixins/runtime/**` (Phases 738–756) |
|
||||||
|
| `mixins/mixin-paths.json` | Basename → folder map for tooling and smokes |
|
||||||
| `platform-class-imports.js` | Class shell, constructor, wiring |
|
| `platform-class-imports.js` | Class shell, constructor, wiring |
|
||||||
| `platform-index-export-manifest.js` | Public re-exports for tests and tooling |
|
| `platform-index-export-manifest.js` | Public re-exports for tests and tooling |
|
||||||
|
|
||||||
@@ -38,7 +39,7 @@ Deep links (`navigateDeepLink`, `channelPermFocusRoleId`, `effectivePermFocusRol
|
|||||||
| Data model, gossip RPC, JsonStore | Orchestrating modules + `view()` + IPC handlers |
|
| Data model, gossip RPC, JsonStore | Orchestrating modules + `view()` + IPC handlers |
|
||||||
| Reusable outside Pearcord | Needs `this.guild`, `this.db`, mesh lifecycle |
|
| Reusable outside Pearcord | Needs `this.guild`, `this.db`, mesh lifecycle |
|
||||||
|
|
||||||
New mixins: add `platform-foo-mixin.js`, register in `platform-runtime-mixin-registry.js` (if runtime), add row to `platform-mixin-assign-manifest.js`, document phase in platform README + roadmap.
|
New mixins: add `mixins/runtime/<category>/platform-foo-mixin.js`, append a row to `platform-mixin-assign-manifest.js` (preserve order), run `npm run regenerate:platform-mixins`, update `mixins/mixin-paths.json` via `python3 apps/pearcord/scripts/generate-mixin-paths-json.py`.
|
||||||
|
|
||||||
## Tests
|
## Tests
|
||||||
|
|
||||||
|
|||||||
@@ -70,6 +70,12 @@ function main () {
|
|||||||
assertIncludes(path.join(DOCS, 'IPC.md'), 'settings-open', 'IPC settings catalog')
|
assertIncludes(path.join(DOCS, 'IPC.md'), 'settings-open', 'IPC settings catalog')
|
||||||
assertIncludes(path.join(DOCS, 'IPC.md'), 'role-editor-open', 'IPC role editor catalog')
|
assertIncludes(path.join(DOCS, 'IPC.md'), 'role-editor-open', 'IPC role editor catalog')
|
||||||
assertIncludes(path.join(DOCS, 'PLATFORM_MIXINS.md'), 'platform-runtime-mixin-registry', 'PLATFORM_MIXINS registry')
|
assertIncludes(path.join(DOCS, 'PLATFORM_MIXINS.md'), 'platform-runtime-mixin-registry', 'PLATFORM_MIXINS registry')
|
||||||
|
const mixinsReadme = path.join(ROOT, 'modules', 'pearcord-platform', 'mixins', 'README.md')
|
||||||
|
assertIncludes(mixinsReadme, 'runtime/', 'platform mixins README')
|
||||||
|
const registry = read(path.join(ROOT, 'modules', 'pearcord-platform', 'platform-runtime-mixin-registry.js'))
|
||||||
|
if (!registry.includes("'./mixins/")) {
|
||||||
|
throw new Error('platform-runtime-mixin-registry must use ./mixins/ paths')
|
||||||
|
}
|
||||||
|
|
||||||
console.log(`DOC_VERSION_ALIGNMENT_OK v${ver}`)
|
console.log(`DOC_VERSION_ALIGNMENT_OK v${ver}`)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user