Skip to content

[finding] The knowledge settings manifest tells an operator at runtime to mount @objectstack/knowledge-turso, a package in no directory of this repo #10920

Description

@os-zhuang

Found while repairing published-README member-existence claims (#10893). Filed unassigned, no pm:queue — triage's call. ⛔ Deliberately NOT folded into #10893: that card's remedy is scoped to published markdown, and this is a runtime operator message plus a spec docblock, which is a different surface and a different fix.

The observation

@objectstack/knowledge-turso is in no directory of this repo. Measured on origin/main at 409077e93c:

git ls-tree -r --name-only origin/main | grep -c "/knowledge-turso/" # -> 0

The knowledge adapters this repo actually builds are @objectstack/knowledge-memory and @objectstack/knowledge-ragflow.

Three in-repo sources nonetheless present it as a shipping package, and one of them says so to an operator, at runtime:

wherewhat it says
packages/services/service-settings/src/manifests/knowledge.manifest.ts:13-15Adapter list mirrors the plugin packages currently published:turso @objectstack/knowledge-turso
packages/services/service-settings/src/manifests/knowledge.manifest.ts:158validation message: Turso adapter configured (${u}). Mount @objectstack/knowledge-turso to exercise live calls.
packages/spec/src/contracts/embedder.ts:9, 44names @objectstack/knowledge-turso and @objectstack/knowledge-sqlite-vec as the adapters that consume IEmbedder

The middle row is the sharp one: an operator who selects the turso knowledge adapter in Settings → AI & Embedder is told, by the running product, to install a package. If that package is not published anywhere, the instruction is unfollowable; if it is published from a sibling or private repo, nothing in this repo records that.

Why it is worth a card

IEmbedder currently has no consumer in this repo at all: KnowledgeMemoryPluginOptions is { id?: string } and KnowledgeRagflowAdapterOptions has no embedder field, so neither in-repo adapter computes vectors through one. The contract's stated consumers are exactly the two packages that are not here. That makes the embedder surface either (a) an interface awaiting an out-of-repo implementation, which should be said plainly, or (b) a published capability with no consumer, which is the shape ADR-0049's enforce-or-remove reasoning applies to.

Deciding between those is not a documentation edit, which is why this is filed rather than fixed.

What was already fixed, so it is not re-found

PR for #10893 repaired packages/plugins/embedder-openai/README.md, whose fenced ```ts block imported KnowledgeTursoPlugin from that package — the paste-and-run hazard. That README now states the gap explicitly. The runtime message and the spec docblock are untouched.

Suggested disposition

Answer the prior question first — is @objectstack/knowledge-turso published anywhere? — then either record where it ships (and make the manifest comment say so instead of "currently published"), or drop the turso adapter option and the docblock's claim.

Refs: #10893 (where this was found, and the README half) · #9532 / #10368 (the member-existence class)

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions