7 Commits

Author SHA1 Message Date
Vadim Malanov
d4a7eda7d4 ci: install pinned engine via ENGINES_TOKEN, run engine tests
Install teamhub-document-recognition-engine v0.1.0 in the backend CI
job through the ENGINES_TOKEN PAT (git insteadOf rewrite, --no-deps
plus pdfminer.six, pin matches app/ingestion/ENGINE_SOURCE.md). The
step fails with a clear error when the secret is missing.
test_chunker.py and the engine adapter tests now run for real in CI
instead of skipping.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:35:27 +03:00
Vadim Malanov
79d5fa9fee chore(guardrail): report-only size check and var/ compatibility note
Add scripts/report_module_sizes.py - report-only LOC bands per layer
from the TeamHUB module-size guardrail (CONVENTIONS.md, module
contract p.6). Always exits 0: split-review stays a human decision.
Wire it into CI as a non-blocking step and into the AGENTS.md
baseline checks.

Document data/input + data/work as the deliberate compatibility
exception to the var/ rule of 18_REPO_LAYOUT_STANDARD.md in
docs/structure-map.md (compose mounts and APP_*_DIR depend on the
paths) and ignore var/ for new local runtime output.

Verified: script runs clean on the repo (159 files in scope, zero
flagged); ruff and compileall pass; adversarial review fixed two
classification bugs (frontend shell under frontend/src/app/,
app/api/security.py as infra helper).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:19:08 +03:00
Vadim Malanov
1c1dceeee2 fix(ci): restore green backend gate after engine pin
Ruff: declare adapter re-exports via __all__ in docling_extractor
(F401) and sort the engine import block in the adapter test (I001).
Pytest: engine-dependent tests now importorskip the pinned engine —
CI installs light deps only and the engine repo is private, so they
skip visibly there and run in Docker/dev envs with the engine.

Verified: ruff clean; pytest 74 passed + 2 skipped without engine,
80 passed with the pinned engine v0.1.0 installed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 09:45:55 +03:00
Vadim Malanov
9af557c26a ci: update actions to Node 24 runtime
Some checks failed
CI / Backend (lint + tests + compose) (push) Has been cancelled
CI / Frontend (lint + type-check + build) (push) Has been cancelled
2026-06-15 10:16:08 +03:00
Vadim Malanov
9c482e4175 ci: clear remaining GitHub annotations
Some checks failed
CI / Backend (lint + tests + compose) (push) Has been cancelled
CI / Frontend (lint + type-check + build) (push) Has been cancelled
2026-06-15 10:14:10 +03:00
Vadim Malanov
dba0484f5a ci: fix GitHub Actions paths
Some checks failed
CI / Backend (lint + tests + compose) (push) Has been cancelled
CI / Frontend (lint + type-check + build) (push) Has been cancelled
2026-06-14 20:10:47 +03:00
Vadim Malanov
54714b5757 ci: add GitHub Actions workflow and ESLint v9 config
Adds two-job CI (backend + frontend) running ruff, pytest (unit only -
skipping heavy ML deps), docker compose config validation for both dev
and prod overlays, plus npm ci -> eslint -> tsc -> vite build for the
frontend.

ESLint config uses the v9 flat-config format that the project was
already on (eslint v9 dropped .eslintrc support); replaces the broken
'eslint . --ext' invocation and adds @typescript-eslint, react-hooks,
and react-refresh plugins.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 16:44:04 +03:00