Describe the stack that runs, not the one that is planned - #27
Merged
Conversation
Two claims in the stack paragraph name components that are not there. Postgres with pgvector. psycopg and the pgvector package are declared in the api extra and imported nowhere; src/praxis/index/ is a lone schema.sql; and docker-compose starts a db service the app does not depend on and never connects to. Dense retrieval runs on numpy in memory with a disk cache and a pure standard-library fallback, which is what the offline image actually uses. GigaChat and YandexGPT as providers for data-residency scenarios. The llm package contains anthropic_client.py, mock.py and the base contract. Neither Russian provider is implemented, and no environment variable for either exists in the source. The second is the more consequential of the two. Data residency is a compliance argument, and someone evaluating this for a Russian client reads that sentence as a capability they can turn on. Both are now described as designed or next, with the file that proves the state named in each case. The website carried the same Postgres claim in stronger form and was corrected in DrobyshevDev.github.io#14. Context and the options for closing the gap: #26.
DenisDrobyshev
added a commit
that referenced
this pull request
Aug 27, 2026
) ARCHITECTURE.md already has a convention for saying what is connected: bet 4 spells out that glia is wired and mlango is wired. Section 2 and bet 3 describe the Postgres store in the same present tense without it, and that store has a schema and no retriever. This is a design document, so the design stays. Only the status is added, with the two files that show it: schema.sql exists, retrieve/dense.py is what actually serves dense search today. Follows #27, which corrected the same claim in the READMEs. Context: #26.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two claims in the stack paragraph name components that are not there.
Postgres with pgvector
docker-compose.ymlstarts adbservice theappservice does notdepends_onand never connects to. What serves dense retrieval, per its own docstring inretrieve/dense.py, is a matrix-vector product over vectors held in memory and cached to disk, with a pure standard-library fallback — which is exactly what the offline image uses.GigaChat and YandexGPT
Claude and a deterministic mock are implemented. Neither Russian provider is, and no environment variable for either exists in the source —
ANTHROPIC_API_KEYis the only one.This is the more consequential of the two. Data residency is a compliance argument. Someone evaluating praxis for a Russian client reads "RU-провайдеры (GigaChat, YandexGPT) для сценариев с требованием резидентности" as a capability they can switch on, and it is a plan.
What the paragraph says now
Both are described as designed or next, and each names the file that shows the current state:
src/praxis/index/schema.sqlfor the Postgres path,src/praxis/llm/base.pyfor the provider contract. A reader can check either claim in one click, which is the property the whole section was missing.The website carried the Postgres claim in a stronger form — it explained why keeping the index in the same database was a good design — and was corrected in DrobyshevDev.github.io#14. This is the source of that claim.
Context and the three options for actually closing the Postgres gap: #26.