What goes in

Text she can quote back exactly

Markdown and plain text, stored as written, and one popular format refused on purpose.

What is accepted

Markdown and plain text, uploaded or pasted in the console, and what is stored is exactly what was in the box. Nothing is reformatted on the way in, so a passage quoted back to a member is the operator's own text rather than a reconstruction of it.

Why PDF is not

PDF is deliberately absent. Extraction from it is a silent quality cliff: it usually works, and when it does not the damage is invisible and reaches the answer. Refusing the format is honest in a way that a mediocre extractor is not.

Retrieval

A floor that was measured, not chosen

Four steps from a question to the passages she is handed, and the number that decides when she is handed none.

QuestionAnswer
Document formats Markdown and plain text only, up to 2 MB, by console upload or paste, and the visible textarea is what is stored, verbatim. PDF deliberately absent: extraction is a silent quality cliff, and the page says so
Retrieval, in four rows Chunks are half-open ranges into the source, so verbatim is structural. They are embedded locally. Keyword and vector are fused with a floor of 0.60 on cosine, measured twice. Passages ride fenced, numbered and unnamed in the user message, so a document name never reaches the model
The citation rule She declares which numbered passages she used; the application drops invalid indices, applies the evidence rule so the answer must actually carry the content of the passages and never under a refusal, and mints the line itself. The declaration is a veto, not a source of truth
Per-bot grants Three states per document per bot: give it, pause, or not given. Absence means NOT GIVEN, so no future bot inherits the operator notes, and the isolation is in the SQL rather than post-filtering
Stores, and reaches outside All Postgres: the document verbatim, the chunk slices, the vectors and the grants, until the operator removes it, and removal cascades the chunks. Outside the machine, nothing: embedding is the local endpoint
When nothing covers it No authored line, deliberately. Below the floor she is handed nothing and answers as an ordinary bot, with no source line and no announcement. With passages present but unhelpful, a constitutional law makes her say in her own words that what she was given does not cover it. With the store down she answers without the documents and the member sees no error

Where the number came from

The relevance floor was measured twice rather than chosen. Set lower, a live run printed a document name under an answer about the boiling point of mercury; lower still, a band of ordinary repository noise straddled the line in production. The number is the record of those two runs.

The citation

She declares, the application decides

The source line under an answer is minted by the application. Her declaration can only take a source away.

A veto, not a source of truth

She declares which numbered passages she used. The application then drops invalid numbers, checks that the answer actually carries what the passage said, refuses to attach a source to a refusal, and mints the line itself. Her declaration can remove a source and can never add one, which is what makes the line worth reading.

Passages reach her fenced, numbered and unnamed, so a document title never enters the prompt at all. She could not cite a document by name if she tried, because she was never told one.

The line the application mints 1 lines · 35 characters
📄 From what you gave me: {sources}
Source site material Block 4 section 4 · the Knowledge Base plugin
The same line, in German 1 lines · 35 characters
📄 Aus deinen Unterlagen: {sources}
Source site material Block 4 section 4 · the Knowledge Base plugin
What she is told about writing it herself 1 lines · 75 characters
Do not write a source line… That line is printed under your answer for you.
Source site material Block 4 section 4 · the Knowledge Base plugin
Grants

Absence means not given

A document reaches a bot because somebody gave it to that bot, and never because it exists.

Three states, per document, per bot

A document is given to a bot, paused for it, or not given at all, and absence means not given. No future bot inherits the operator's notes by existing, and the isolation is enforced in the query rather than by filtering afterwards.

What the console offers instead of re-ingesting 1 lines · 39 characters
Save, and mark affected documents stale
Source site material Block 4 section 4 · the Knowledge Base plugin

Changing an ingest setting never re-ingests silently. Affected documents are marked stale and stay retrievable, so a setting change cannot quietly empty a bot's knowledge while appearing to have worked.

When it does not cover it

No announcement, and no invented source

The behaviour that matters is the one when the documents are no help, and it is deliberately quiet.

What she does with nothing

There is no authored line for having found nothing, deliberately. Below the floor she is handed nothing at all and answers as an ordinary bot, with no source line and no announcement that a lookup happened. If the store is down she answers without the documents and the member sees no error, because a member asking a question is not the right audience for an infrastructure fault.

What a member sent 1 lines · 25 characters
❤️ (a single heart emoji)
Source site material Block 4 section 4 · the Knowledge Base plugin

What that one run produced

A member sent a single heart. She announced a lookup, answered with small talk about emoji, and printed a source line naming one of the operator's documents underneath it. The answer had nothing to do with the document. The trigger, the floor and the evidence rule all exist because of runs like that one, and the document title is redacted here because it is the operator's.