Phase 989: add parity track module map + line audit (v0.8.956)
Non-breaking refactor — registry of 16 mesh stability UI parity modules (phases 981–988) with 100-line audit and documented rail-hash exception. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -198,6 +198,11 @@ Application facade: one `PearcordPlatform` class that wires identity, database,
|
||||
| `mesh-stability-ui-bandwidth-diagnostics-keys.js` | Bandwidth diagnostics field/embed part keys + snapshot builder |
|
||||
| `mesh-stability-ui-sparse-ack-diagnostics-keys.js` | Sparse ACK diagnostics row/embed part keys + snapshot builder |
|
||||
| `mesh-stability-ui-parity-track-index.js` | Mesh stability UI parity track phase registry 981–1005 |
|
||||
| `mesh-stability-ui-parity-track-module-map.js` | Parity track module map registry + 100-line audit |
|
||||
|
||||
**Mesh stability UI parity track module index (phases 981–988):** `mesh-stability-ui-parity-track-module-map.js` — 16 modules (8 platform keys + 8 UI); line audit exception: `mesh-stability-ui-rail-hash.js`.
|
||||
|
||||
**Phase 989 (v0.8.956):** Mesh stability UI parity track module map doc + line audit — `mesh-stability-ui-parity-track-module-map.js`. Bundle: `npm run test:ci-phase989`.
|
||||
|
||||
**Phase 988 (v0.8.955):** Mesh stability UI sparse ACK diagnostics embed — `mesh-stability-ui-sparse-ack-diagnostics-keys.js` (2 row field + 2 embed parts); UI cursor list in `apps/pearcord/ui/mesh-stability-ui-sparse-ack-diagnostics.js`. Bundle: `npm run test:ci-phase988`.
|
||||
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
'use strict'
|
||||
|
||||
const MESH_STABILITY_UI_MODULE_LINE_BUDGET = 100
|
||||
|
||||
const meshStabilityUiParityTrackModuleMap = [
|
||||
{ file: 'mesh-stability-ui-parity-track-index.js', phase: 981, scope: 'platform', role: 'Parity track phase registry 981–1005' },
|
||||
{ file: 'mesh-stability-ui-rail-hash.js', phase: 981, scope: 'ui', role: 'View hash builders for seven mesh chrome kinds' },
|
||||
{ file: 'mesh-stability-ui-topology-chrome-keys.js', phase: 982, scope: 'platform', role: 'Topology chrome field/action keys + snapshot' },
|
||||
{ file: 'mesh-stability-ui-topology-chrome.js', phase: 982, scope: 'ui', role: 'Peer hint and settings stability copy formatters' },
|
||||
{ file: 'mesh-stability-ui-refresh-predicate-keys.js', phase: 983, scope: 'platform', role: 'Refresh predicate key registry + snapshot' },
|
||||
{ file: 'mesh-stability-ui-refresh-predicates.js', phase: 983, scope: 'ui', role: 'guild*NeedsRefresh predicate helpers' },
|
||||
{ file: 'mesh-stability-ui-reconnect-chrome-keys.js', phase: 984, scope: 'platform', role: 'Reconnect chrome field/action keys + P2P badge formatter' },
|
||||
{ file: 'mesh-stability-ui-reconnect-chrome.js', phase: 984, scope: 'ui', role: 'P2P badge apply helper' },
|
||||
{ file: 'mesh-stability-ui-sync-chrome-chain-keys.js', phase: 985, scope: 'platform', role: 'Sync chrome chain step registry + handler map' },
|
||||
{ file: 'mesh-stability-ui-sync-chrome-chain.js', phase: 985, scope: 'ui', role: 'Guild sync mode guard for sync chrome handlers' },
|
||||
{ file: 'mesh-stability-ui-diagnostics-ipc-keys.js', phase: 986, scope: 'platform', role: 'Diagnostics panel button/IPC action keys' },
|
||||
{ file: 'mesh-stability-ui-diagnostics-ipc.js', phase: 986, scope: 'ui', role: 'Diagnostics button HTML + export IPC wiring' },
|
||||
{ file: 'mesh-stability-ui-bandwidth-diagnostics-keys.js', phase: 987, scope: 'platform', role: 'Bandwidth diagnostics field/embed part keys' },
|
||||
{ file: 'mesh-stability-ui-bandwidth-diagnostics.js', phase: 987, scope: 'ui', role: 'Bandwidth sparkline/progress/hint embed' },
|
||||
{ file: 'mesh-stability-ui-sparse-ack-diagnostics-keys.js', phase: 988, scope: 'platform', role: 'Sparse ACK diagnostics row/embed part keys' },
|
||||
{ file: 'mesh-stability-ui-sparse-ack-diagnostics.js', phase: 988, scope: 'ui', role: 'Sparse ACK cursor list diagnostics embed' }
|
||||
]
|
||||
|
||||
const meshStabilityUiModuleLineAuditExceptions = [
|
||||
'mesh-stability-ui-rail-hash.js'
|
||||
]
|
||||
|
||||
function listMeshStabilityUiParityTrackModuleMap () {
|
||||
return meshStabilityUiParityTrackModuleMap.map((e) => ({ ...e }))
|
||||
}
|
||||
|
||||
function listMeshStabilityUiModuleLineAuditExceptions () {
|
||||
return meshStabilityUiModuleLineAuditExceptions.slice()
|
||||
}
|
||||
|
||||
function countModuleLines (src) {
|
||||
return String(src || '').split('\n').length
|
||||
}
|
||||
|
||||
function resolveMeshStabilityUiModulePath (entry, platformDir, uiDir) {
|
||||
if (entry.scope === 'ui') return `${uiDir}/${entry.file}`
|
||||
return `${platformDir}/${entry.file}`
|
||||
}
|
||||
|
||||
function runMeshStabilityUiModuleLineAudit (readFileSync, platformDir, uiDir) {
|
||||
const modules = []
|
||||
const overBudget = []
|
||||
for (const entry of meshStabilityUiParityTrackModuleMap) {
|
||||
const filePath = resolveMeshStabilityUiModulePath(entry, platformDir, uiDir)
|
||||
const src = readFileSync(filePath, 'utf8')
|
||||
const lines = countModuleLines(src)
|
||||
const row = { ...entry, lines, withinBudget: lines <= MESH_STABILITY_UI_MODULE_LINE_BUDGET }
|
||||
modules.push(row)
|
||||
if (!row.withinBudget && !meshStabilityUiModuleLineAuditExceptions.includes(entry.file)) {
|
||||
overBudget.push(row)
|
||||
}
|
||||
}
|
||||
const exceptionRows = modules.filter((m) => meshStabilityUiModuleLineAuditExceptions.includes(m.file))
|
||||
return {
|
||||
lineBudget: MESH_STABILITY_UI_MODULE_LINE_BUDGET,
|
||||
moduleCount: modules.length,
|
||||
withinBudgetCount: modules.filter((m) => m.withinBudget).length,
|
||||
exceptionCount: exceptionRows.length,
|
||||
overBudget,
|
||||
modules
|
||||
}
|
||||
}
|
||||
|
||||
function buildMeshStabilityUiModuleMapSnapshot () {
|
||||
return {
|
||||
lineBudget: MESH_STABILITY_UI_MODULE_LINE_BUDGET,
|
||||
moduleCount: meshStabilityUiParityTrackModuleMap.length,
|
||||
phases: [...new Set(meshStabilityUiParityTrackModuleMap.map((e) => e.phase))].sort((a, b) => a - b),
|
||||
files: meshStabilityUiParityTrackModuleMap.map((e) => e.file),
|
||||
exceptions: meshStabilityUiModuleLineAuditExceptions.slice()
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
MESH_STABILITY_UI_MODULE_LINE_BUDGET,
|
||||
meshStabilityUiParityTrackModuleMap,
|
||||
meshStabilityUiModuleLineAuditExceptions,
|
||||
listMeshStabilityUiParityTrackModuleMap,
|
||||
listMeshStabilityUiModuleLineAuditExceptions,
|
||||
runMeshStabilityUiModuleLineAudit,
|
||||
buildMeshStabilityUiModuleMapSnapshot
|
||||
}
|
||||
Reference in New Issue
Block a user