Skip to content

Describe the stack that runs, not the one that is planned - #27

Merged
DenisDrobyshev merged 1 commit into
masterfrom
honest-stack
Aug 27, 2026
Merged

Describe the stack that runs, not the one that is planned#27
DenisDrobyshev merged 1 commit into
masterfrom
honest-stack

Conversation

@DenisDrobyshev

Copy link
Copy Markdown
Member

Two claims in the stack paragraph name components that are not there.

Postgres with pgvector

grep -rn "psycopg" --include=*.py .          -> no matches
grep -rln "postgres|POSTGRES|DSN|dbname" src -> no matches
find src/praxis/index -type f                -> schema.sql only

docker-compose.yml starts a db service the app service does not depends_on and never connects to. What serves dense retrieval, per its own docstring in retrieve/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

ls src/praxis/llm/  ->  __init__.py  anthropic_client.py  base.py  mock.py
grep -rniE "gigachat|yandex" --include=*.py src/  -> no matches

Claude and a deterministic mock are implemented. Neither Russian provider is, and no environment variable for either exists in the source — ANTHROPIC_API_KEY is 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.sql for the Postgres path, src/praxis/llm/base.py for 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.

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
DenisDrobyshev merged commit 43e7eb0 into master Aug 27, 2026
11 checks passed
@DenisDrobyshev
DenisDrobyshev deleted the honest-stack branch August 27, 2026 11:20
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant