Files
pearcord-platform/mixins/README.md
T
Raven ScottandCursor ddcdc33363 docs: link mixin README to PLATFORM_MIXINS and prestage workflow
Clarify category folders, regenerate npm script, and OTA prestage docs.

Co-authored-by: Cursor <[email protected]>
2026-06-03 17:45:18 -04:00

37 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Pearcord platform mixins
Prototype mixins merged onto `PearcordPlatform` in **manifest order** ([`platform-mixin-assign-manifest.js`](../platform-mixin-assign-manifest.js)). Do not reorder rows without a regression pass (`npm run test:phase730-mixin-manifest`).
## Layout
| Folder | Contents | Manifest rows (approx.) |
|--------|----------|------------------------|
| [`domain/`](domain/) | Legacy feature mixins (`permissions-mixin`, `user-settings`, …) | 116 |
| [`json-export/`](json-export/) | Signed JSON mesh export mixins (`*-json-mixin.js`) | 1759 |
| [`runtime/core/`](runtime/core/) | Hyperswarm, session, capabilities, diagnostics | 6065 |
| [`runtime/mesh/`](runtime/mesh/) | Guild mesh peers, auto-heal, federation view | 6674 |
| [`runtime/guild-sync/`](runtime/guild-sync/) | Sync watermarks, gossip outbox, wire, ingest/export | 7588 |
| [`runtime/search-discovery/`](runtime/search-discovery/) | Search index, discovery listings, forum search | 89103 |
| [`runtime/partition-heal/`](runtime/partition-heal/) | Partition heal state + domain heal mixins | 72, 104112 |
| [`runtime/view/`](runtime/view/) | `view()`, caches, unread audit | 97, 109111, 126 |
| [`runtime/voice-dm/`](runtime/voice-dm/) | DM session, voice mesh state, contacts presence | 9293, 129130 |
| [`runtime/features/`](runtime/features/) | Messaging, permissions, channels, bots, settings prefs, … | remainder |
Path map: [`mixin-paths.json`](mixin-paths.json). Regenerate after adding a mixin:
```bash
python3 apps/pearcord/scripts/generate-mixin-paths-json.py
# edit map / categorize() if needed
python3 apps/pearcord/scripts/migrate-platform-mixin-dirs.py --manifest-only # after manual mv
cd modules/pearcord-platform && python3 ../../apps/pearcord/scripts/regenerate-apply-platform-mixins.py
cd modules/pearcord-platform && python3 ../../apps/pearcord/scripts/regenerate-runtime-mixin-registry.py
```
## Adding a new `platform-*` mixin
1. Add file under the correct `runtime/<category>/` folder.
2. Append a row to `platform-mixin-assign-manifest.js` (usually near related mixins).
3. Run both regenerate scripts and `npm run test:phase730-mixin-manifest`.
See [PLATFORM_MIXINS.md](../../docs/PLATFORM_MIXINS.md) for architecture context.