docs(s31): close the review's honesty gap — narrow semantic claims to the shipped mechanism
This commit is contained in:
parent
5481781ca5
commit
9e149c6847
5 changed files with 81 additions and 36 deletions
|
|
@ -137,7 +137,15 @@ Note that `similarity` is **injected**, not imported by `semretrieval`. That is
|
|||
of it (guarded by `tests/test_semretrieval_loadbearing.py`, which ranks in a subprocess and then
|
||||
asserts `verdicts` never entered `sys.modules`). Keep that property if you extend the module.
|
||||
|
||||
**A real embeddings client is a config-only extension point — it is not built here.** The shipped
|
||||
**A real embeddings client is a code-level extension point — it is not built here.** Selection goes
|
||||
through a CLOSED registry: `--embedder-config` names a type, `build_embedder` dispatches on it, and
|
||||
an unknown type is refused rather than resolved. A dotted `module:Class` import path is
|
||||
deliberately *not* supported — that would be arbitrary code execution at config-load time and would
|
||||
hand a config file the ability to import something that opens a socket, routing around the
|
||||
no-network guard (which is scoped to `semretrieval.py` and blind to a third module by
|
||||
construction). Adding a real embedder therefore means adding a registry branch in code, plus any
|
||||
capability opt-in as a factory kwarg — the same discipline `NotifierConfig` applies to egress. The
|
||||
shipped
|
||||
`FakeEmbedder` is a deterministic sha256 projection with no semantics; it exists so the seam is
|
||||
exercisable offline at zero cost, and the load-bearing proof is that removing the cosine term
|
||||
flips the ranking, not that the projection is meaningful. A deployer supplying a real client owns
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue