You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Verified at 1675e6d. Same class as #2 and #5 (a declared surface absent from the document that describes it), on a third document, found by the enumeration act those issues argued for.
Result
README.md says "Production crates live under crates/" and lists 6. There are 11.
crate
in README
synapse-core
listed
synapse-engine-cuda
absent
synapse-engine-ort
listed
synapse-engine-owned
absent
synapse-module
listed
synapse-opctl
absent
synapse-worker-ane
listed
synapse-worker-cuda
absent
synapse-worker-decode
absent
synapse-worker-llama
listed
synapse-worker-mlx
listed
Detector control, since a check that reports nothing missing has not shown it can: a probe for a crate that cannot be present (synapse-zzz-nonexistent) correctly reported MISSING, so the not-found branch fires.
Why these five matter more than a count
The two absent engines are the ones a reader needs first. ARCHITECTURE.md calls synapse-engine-owned the "primary in-process execution engine" and synapse-engine-cuda the "primary in-process CUDA execution engine" — so the README's production-crate list names the ONNX fallback engine and neither primary. A reader deciding whether synapse runs on their hardware is reading the one list that omits both answers.
synapse-opctl is the operator entry point (ck-synapse-opctl), and synapse-worker-decode / synapse-worker-cuda are the supervised workers those engines drive.
How this was reached, since it is not a doc-review finding
This came out of a concrete evaluation: whether synapse could replace a set of HTTP inference containers on an RTX 5090 box. Answering "which engines exist and what do they run on" required reading Cargo.toml members, then 12 #[cfg(target_os = "macos")] gates in lib.rs, then the CUDA crate's dtype surface — because the README's crate list is incomplete and there is no platform×task matrix anywhere.
That is the cost being reported. Not that the doc is untidy: that the fastest path to "can this run here" currently goes through the source.
Consider a short platform×task matrix — which tasks (embed.*, rerank.score, owned_decode.*) are served by which engine on macOS vs Linux vs Windows. Optional because it is prose rather than an enumerable axis, and prose cannot be guarded the way a name list can. But it is the specific thing whose absence cost the most time here.
Related
The diff-shaped rule proposed on #5 — fail when a public surface grows without its documenting file changing in the same commit — would cover this document too, and would have caught these five at the commit that added each crate. Still unbuilt; noting it because this is now the third document exhibiting the same gap.
Verified at
1675e6d. Same class as #2 and #5 (a declared surface absent from the document that describes it), on a third document, found by the enumeration act those issues argued for.Result
README.mdsays "Production crates live undercrates/" and lists 6. There are 11.synapse-coresynapse-engine-cudasynapse-engine-ortsynapse-engine-ownedsynapse-modulesynapse-opctlsynapse-worker-anesynapse-worker-cudasynapse-worker-decodesynapse-worker-llamasynapse-worker-mlxDetector control, since a check that reports nothing missing has not shown it can: a probe for a crate that cannot be present (
synapse-zzz-nonexistent) correctly reported MISSING, so the not-found branch fires.Why these five matter more than a count
The two absent engines are the ones a reader needs first.
ARCHITECTURE.mdcallssynapse-engine-ownedthe "primary in-process execution engine" andsynapse-engine-cudathe "primary in-process CUDA execution engine" — so the README's production-crate list names the ONNX fallback engine and neither primary. A reader deciding whether synapse runs on their hardware is reading the one list that omits both answers.synapse-opctlis the operator entry point (ck-synapse-opctl), andsynapse-worker-decode/synapse-worker-cudaare the supervised workers those engines drive.How this was reached, since it is not a doc-review finding
This came out of a concrete evaluation: whether synapse could replace a set of HTTP inference containers on an RTX 5090 box. Answering "which engines exist and what do they run on" required reading
Cargo.tomlmembers, then 12#[cfg(target_os = "macos")]gates inlib.rs, then the CUDA crate's dtype surface — because the README's crate list is incomplete and there is no platform×task matrix anywhere.That is the cost being reported. Not that the doc is untidy: that the fastest path to "can this run here" currently goes through the source.
Suggested fix
Two parts, the second optional:
Complete the list. Same shape as
wire_contract_documents_every_management_operation— a test can enumeratecrates/*against the README and fail on drift, which would keep this closed rather than fixing it once. Same caveat as Three emitted StableErrorCode values are undocumented in the consumer wire contract — and the new drift guard does not cover this axis #5: that guards the crate-name axis only.Consider a short platform×task matrix — which tasks (
embed.*,rerank.score,owned_decode.*) are served by which engine on macOS vs Linux vs Windows. Optional because it is prose rather than an enumerable axis, and prose cannot be guarded the way a name list can. But it is the specific thing whose absence cost the most time here.Related
The diff-shaped rule proposed on #5 — fail when a public surface grows without its documenting file changing in the same commit — would cover this document too, and would have caught these five at the commit that added each crate. Still unbuilt; noting it because this is now the third document exhibiting the same gap.