fix(contract): the flush gate's internals are #-private — they are not doors
The 10.4.11 flush single-flight work added `startFlushLeader` and `promoteQueuedFlush` as TypeScript `private` methods. `private` is erased at compile time, so both still land on the prototype — and the contract manifest emitter reads the surface the BUILD exposes, skipping only names that start with an underscore. On the next regeneration both would have been emitted as contract doors, obliging every engine implementing contract 1 to provide the flush gate's own bookkeeping. A door is a promise; these are internals. Converted to ECMAScript-private (`#`), which keeps them off the prototype entirely, and the reason is recorded on both so the next internal is not written as `private` by habit. `_runFlush` — the flush body itself — was already safe by the emitter's underscore rule. Verified: `npm run build && node scripts/emit-contract-manifest.mjs` then `--check` green at 302 doors, with neither name present. TWO MANIFEST NOTES, both deliberate and neither hidden: 1. The regenerated manifest gains `MetadataArrayTooLargeError`. The emitter lists every `*Error` export from brainyError.js, and that class is the write door's refusal for an over-bound metadata array (this branch's array-bound commit). It is a real addition to the engine's error surface, so the manifest is right to carry it — flagged here because it is a contract-surface change that the cut should accept knowingly, not a side effect that slipped in. 2. `armIdleFlushTimer` and `kickBackgroundFlush` are TypeScript `private` in src and ARE already in the committed manifest as doors — the same leak, one release older. They are left exactly as they are: removing a name the manifest already publishes is a contract deletion, not a hygiene fix, and it belongs to whoever owns contract 1 rather than to this branch.
This commit is contained in:
parent
f27a777615
commit
72c8ee6acd
2 changed files with 18 additions and 7 deletions
|
|
@ -1507,6 +1507,7 @@
|
|||
"BrainyError",
|
||||
"DerivedArtifactMissingError",
|
||||
"GraphIndexNotReadyError",
|
||||
"MetadataArrayTooLargeError",
|
||||
"MetadataIndexNotReadyError",
|
||||
"MigrationInProgressError",
|
||||
"ProtectedArtifactError",
|
||||
|
|
|
|||
Reference in a new issue