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.
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.
| Question | Answer |
|---|---|
| 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.
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.
📄 From what you gave me: {sources}
📄 Aus deinen Unterlagen: {sources}
Do not write a source line… That line is printed under your answer for you.
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.
Save, and mark affected documents stale
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.
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.
❤️ (a single heart emoji)
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.