diff --git a/.agents/phases/todo/86_history_page_width/00_phase.md b/.agents/phases/complete/86_history_page_width/00_phase.md similarity index 100% rename from .agents/phases/todo/86_history_page_width/00_phase.md rename to .agents/phases/complete/86_history_page_width/00_phase.md diff --git a/.agents/phases/todo/86_history_page_width/01_table_wrap_fix.md b/.agents/phases/complete/86_history_page_width/01_table_wrap_fix.md similarity index 100% rename from .agents/phases/todo/86_history_page_width/01_table_wrap_fix.md rename to .agents/phases/complete/86_history_page_width/01_table_wrap_fix.md diff --git a/.agents/phases/todo/86_history_page_width/02_e2e_story_suite.md b/.agents/phases/complete/86_history_page_width/02_e2e_story_suite.md similarity index 100% rename from .agents/phases/todo/86_history_page_width/02_e2e_story_suite.md rename to .agents/phases/complete/86_history_page_width/02_e2e_story_suite.md diff --git a/.agents/phases/todo/86_history_page_width/03_verify_and_commit.md b/.agents/phases/complete/86_history_page_width/03_verify_and_commit.md similarity index 100% rename from .agents/phases/todo/86_history_page_width/03_verify_and_commit.md rename to .agents/phases/complete/86_history_page_width/03_verify_and_commit.md diff --git a/.agents/reports/86_history_page_width/86_history_page_width__00_phase.a1.err b/.agents/reports/86_history_page_width/86_history_page_width__00_phase.a1.err new file mode 100644 index 0000000..e69de29 diff --git a/.agents/reports/86_history_page_width/86_history_page_width__00_phase.a1.md b/.agents/reports/86_history_page_width/86_history_page_width__00_phase.a1.md new file mode 100644 index 0000000..4e82fb2 --- /dev/null +++ b/.agents/reports/86_history_page_width/86_history_page_width__00_phase.a1.md @@ -0,0 +1,9 @@ +All criteria verified. Final report: + +**Phase 86 final verification pass — all green, no defects found.** + +- **Verified (previously implemented):** `position: relative` on shared `.table-wrap` (the one-rule A3 fix, +12 lines in `frontend/assets/styles.css`); unit pin `tests/unit/test_table_wrap_stacking.py` (3 tests); E2E story `tests/e2e/test_history_page_width.py` (5 tests: History 626→≤375, Tokens 618→≤375, SPA switch with window-sentinel, RAG regression, desktop 1280×800) +- **Tests/lint (this pass):** `uv run pytest` → 1720 passed · `uv run pytest --cov=app --cov-report=term-missing` → TOTAL **99%** (>90% floor) · E2E in isolation: `test_history_page_width.py` 5 passed, `test_chat_history.py` 5 passed, `test_api_tokens.py` 9 passed, `test_smoke.py` 3 passed · `uv run ruff check . && uv run pyright` → clean, 0 errors +- **Completion criteria:** ① 375px direct+SPA `scrollWidth ≤ innerWidth` on History/Tokens — PASS (E2E pins) ② in-card scroll preserved + full-width + a11y spans in DOM — PASS ③ Sources + desktop regression — PASS ④ full suite/coverage/E2E/lint gates — PASS ⑤ `git diff --stat` limited to `styles.css` (+12) + new test files + phase files, no `app/`/markup/JS — PASS ⑥ commit/move — left to harness per executor rules (working tree intact, `todo/` dir removal already reflected) +- **Notable:** red→green (CSS reverted → 626px failure) and manual live check already recorded in `.agents/reports/86_history_page_width/`; pre-existing untracked `.agents/remediation_plan.md` (Sep 7 security audit) untouched +- **Next pending phase:** `87_big_read_progress` diff --git a/.agents/reports/86_history_page_width/86_history_page_width__00_phase.a1.validate b/.agents/reports/86_history_page_width/86_history_page_width__00_phase.a1.validate new file mode 100644 index 0000000..bb6cf10 --- /dev/null +++ b/.agents/reports/86_history_page_width/86_history_page_width__00_phase.a1.validate @@ -0,0 +1,85 @@ +........................................................................ [ 4%] +........................................................................ [ 8%] +........................................................................ [ 12%] +........................................................................ [ 16%] +........................................................................ [ 20%] +........................................................................ [ 25%] +........................................................................ [ 29%] +........................................................................ [ 33%] +........................................................................ [ 37%] +........................................................................ [ 41%] +........................................................................ [ 46%] +........................................................................ [ 50%] +........................................................................ [ 54%] +........................................................................ [ 58%] +........................................................................ [ 62%] +........................................................................ [ 66%] +........................................................................ [ 71%] +........................................................................ [ 75%] +........................................................................ [ 79%] +........................................................................ [ 83%] +........................................................................ [ 87%] +........................................................................ [ 92%] +........................................................................ [ 96%] +................................................................ [100%] +=============================== warnings summary =============================== +.venv/lib/python3.13/site-packages/fastapi/testclient.py:1 + /var/home/ducoterra/Projects/Personal/brain_of_reese/.venv/lib/python3.13/site-packages/fastapi/testclient.py:1: StarletteDeprecationWarning: Using `httpx` with `starlette.testclient` is deprecated; install `httpx2` instead. + from starlette.testclient import TestClient as TestClient # noqa + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +================================ tests coverage ================================ +_______________ coverage: platform linux, python 3.13.13-final-0 _______________ + +Name Stmts Miss Cover +-------------------------------------------------- +app/__init__.py 1 0 100% +app/api/__init__.py 0 0 100% +app/api/auth.py 52 0 100% +app/api/chat.py 178 0 100% +app/api/chats.py 110 0 100% +app/api/config.py 7 0 100% +app/api/doc_drafts.py 94 0 100% +app/api/docs.py 50 0 100% +app/api/git_sources.py 212 0 100% +app/api/health.py 10 0 100% +app/api/steering.py 42 0 100% +app/api/suggestions.py 29 0 100% +app/api/sync.py 98 0 100% +app/api/tokens.py 28 0 100% +app/config.py 141 0 100% +app/core/__init__.py 0 0 100% +app/core/auth.py 45 0 100% +app/core/caching.py 108 0 100% +app/core/debugging.py 29 2 93% +app/core/docs_push.py 39 0 100% +app/core/errors.py 5 0 100% +app/core/logging.py 13 0 100% +app/core/rate_limit.py 44 0 100% +app/core/security_headers.py 19 0 100% +app/core/tokens.py 33 0 100% +app/db.py 21 0 100% +app/main.py 64 0 100% +app/models.py 94 0 100% +app/rag/__init__.py 0 0 100% +app/rag/agent.py 222 0 100% +app/rag/archive_upload.py 128 0 100% +app/rag/chunker.py 206 4 98% +app/rag/git_sources.py 14 0 100% +app/rag/importer.py 180 3 98% +app/rag/llm.py 217 0 100% +app/rag/overview.py 71 0 100% +app/rag/prompts.py 88 0 100% +app/rag/retriever.py 150 3 98% +app/rag/scaffolding.py 55 0 100% +app/rag/source_removal.py 41 0 100% +app/rag/sources_meta.py 16 0 100% +app/rag/suggestions.py 27 0 100% +app/rag/summarizer.py 24 0 100% +app/schemas.py 232 0 100% +-------------------------------------------------- +TOTAL 3237 12 99% +coverage gate: app/ 99% (>90%) OK +All checks passed! +0 errors, 0 warnings, 0 informations +validation OK diff --git a/.agents/reports/86_history_page_width/86_history_page_width__01_table_wrap_fix.a1.err b/.agents/reports/86_history_page_width/86_history_page_width__01_table_wrap_fix.a1.err new file mode 100644 index 0000000..e69de29 diff --git a/.agents/reports/86_history_page_width/86_history_page_width__01_table_wrap_fix.a1.md b/.agents/reports/86_history_page_width/86_history_page_width__01_table_wrap_fix.a1.md new file mode 100644 index 0000000..4ddf145 --- /dev/null +++ b/.agents/reports/86_history_page_width/86_history_page_width__01_table_wrap_fix.a1.md @@ -0,0 +1,13 @@ +All gates green. Final state verified: + +**Report — Phase 86, Task 01 (table-wrap containing-block fix)** + +- Added `position: relative;` (first declaration) to the shared `.table-wrap` rule in `frontend/assets/styles.css`, with a root-cause comment (positioned `.visually-hidden` spans → initial containing block → document scroll leak; TODO.md L4) — the one-rule A3 fix +- New unit pin `tests/unit/test_table_wrap_stacking.py` (house CSS-source pattern): `position: relative` present + first, `overflow-x: auto` preserved, and the fix scoped to `.table-wrap` only (`.md-table-wrap` / `#git-sources-table-wrap` untouched); docstring carries the measured bug basis (626/618/375 at 375px, 2026-09-07) +- Live browser verification (375px, throwaway script, deleted after): History scrollWidth 626→375, Tokens 618→375, Sources 375 (unchanged); in-card scroll intact (wraps 688/640 > 344 client); a11y spans still in DOM +- `uv run pytest tests/unit/test_table_wrap_stacking.py -v` → 3 passed +- `uv run pytest --cov=app --cov-report=term-missing` → 1720 passed, TOTAL **99%** (>90%) +- `uv run ruff check . && uv run pyright` → All checks passed / 0 errors +- `uv run pytest tests/e2e/test_smoke.py -v --no-cov` → 3 passed (sanity, app functional) +- `git diff --stat -- frontend/` → only `frontend/assets/styles.css` (+12: comment + 1 property); no markup/JS changes; no commit made (harness commits) +- Next pending task: `02_e2e_story_suite.md` (the `tests/e2e/test_history_page_width.py` story suite) diff --git a/.agents/reports/86_history_page_width/86_history_page_width__01_table_wrap_fix.a1.validate b/.agents/reports/86_history_page_width/86_history_page_width__01_table_wrap_fix.a1.validate new file mode 100644 index 0000000..bb6cf10 --- /dev/null +++ b/.agents/reports/86_history_page_width/86_history_page_width__01_table_wrap_fix.a1.validate @@ -0,0 +1,85 @@ +........................................................................ [ 4%] +........................................................................ [ 8%] +........................................................................ [ 12%] +........................................................................ [ 16%] +........................................................................ [ 20%] +........................................................................ [ 25%] +........................................................................ [ 29%] +........................................................................ [ 33%] +........................................................................ [ 37%] +........................................................................ [ 41%] +........................................................................ [ 46%] +........................................................................ [ 50%] +........................................................................ [ 54%] +........................................................................ [ 58%] +........................................................................ [ 62%] +........................................................................ [ 66%] +........................................................................ [ 71%] +........................................................................ [ 75%] +........................................................................ [ 79%] +........................................................................ [ 83%] +........................................................................ [ 87%] +........................................................................ [ 92%] +........................................................................ [ 96%] +................................................................ [100%] +=============================== warnings summary =============================== +.venv/lib/python3.13/site-packages/fastapi/testclient.py:1 + /var/home/ducoterra/Projects/Personal/brain_of_reese/.venv/lib/python3.13/site-packages/fastapi/testclient.py:1: StarletteDeprecationWarning: Using `httpx` with `starlette.testclient` is deprecated; install `httpx2` instead. + from starlette.testclient import TestClient as TestClient # noqa + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +================================ tests coverage ================================ +_______________ coverage: platform linux, python 3.13.13-final-0 _______________ + +Name Stmts Miss Cover +-------------------------------------------------- +app/__init__.py 1 0 100% +app/api/__init__.py 0 0 100% +app/api/auth.py 52 0 100% +app/api/chat.py 178 0 100% +app/api/chats.py 110 0 100% +app/api/config.py 7 0 100% +app/api/doc_drafts.py 94 0 100% +app/api/docs.py 50 0 100% +app/api/git_sources.py 212 0 100% +app/api/health.py 10 0 100% +app/api/steering.py 42 0 100% +app/api/suggestions.py 29 0 100% +app/api/sync.py 98 0 100% +app/api/tokens.py 28 0 100% +app/config.py 141 0 100% +app/core/__init__.py 0 0 100% +app/core/auth.py 45 0 100% +app/core/caching.py 108 0 100% +app/core/debugging.py 29 2 93% +app/core/docs_push.py 39 0 100% +app/core/errors.py 5 0 100% +app/core/logging.py 13 0 100% +app/core/rate_limit.py 44 0 100% +app/core/security_headers.py 19 0 100% +app/core/tokens.py 33 0 100% +app/db.py 21 0 100% +app/main.py 64 0 100% +app/models.py 94 0 100% +app/rag/__init__.py 0 0 100% +app/rag/agent.py 222 0 100% +app/rag/archive_upload.py 128 0 100% +app/rag/chunker.py 206 4 98% +app/rag/git_sources.py 14 0 100% +app/rag/importer.py 180 3 98% +app/rag/llm.py 217 0 100% +app/rag/overview.py 71 0 100% +app/rag/prompts.py 88 0 100% +app/rag/retriever.py 150 3 98% +app/rag/scaffolding.py 55 0 100% +app/rag/source_removal.py 41 0 100% +app/rag/sources_meta.py 16 0 100% +app/rag/suggestions.py 27 0 100% +app/rag/summarizer.py 24 0 100% +app/schemas.py 232 0 100% +-------------------------------------------------- +TOTAL 3237 12 99% +coverage gate: app/ 99% (>90%) OK +All checks passed! +0 errors, 0 warnings, 0 informations +validation OK diff --git a/.agents/reports/86_history_page_width/86_history_page_width__02_e2e_story_suite.a1.err b/.agents/reports/86_history_page_width/86_history_page_width__02_e2e_story_suite.a1.err new file mode 100644 index 0000000..e69de29 diff --git a/.agents/reports/86_history_page_width/86_history_page_width__02_e2e_story_suite.a1.md b/.agents/reports/86_history_page_width/86_history_page_width__02_e2e_story_suite.a1.md new file mode 100644 index 0000000..2346821 --- /dev/null +++ b/.agents/reports/86_history_page_width/86_history_page_width__02_e2e_story_suite.a1.md @@ -0,0 +1,17 @@ +Task 02 complete. Report: + +**Implemented** +- `tests/e2e/test_history_page_width.py` (new) — 5 isolated Playwright tests: History viewport-width at 375px (THE 626→≤375 pin + in-card scroll + a11y-span presence), Tokens (618 fold-in), SPA switch history→tokens (real `#nav-toggle` click + phase-76 window-sentinel same-document proof), RAG regression (viewport-width + full-width docs table), desktop 1280×800 no-overflow / container-width tables. +- RAG + desktop tests seed the KB house-way (truncate + 13 fixture docs) — the RAG view hides its table on an empty KB; History/Tokens pins hold empty, as the task assumed. + +**Results** +- `uv run pytest tests/e2e/test_history_page_width.py -v --no-cov` → **5 passed** (in isolation, DB up) +- Red→green verified: with task-01 CSS reverted, `test_history_page_is_viewport_width` fails at the scrollWidth pin (**626px at a 375px viewport** — the exact reported defect); restored → green (recorded in the session above) +- `uv run pytest --cov=app --cov-report=term-missing` → **1720 passed, 99% coverage** (>90%) +- `uv run ruff check .` → clean; `uv run pyright` → **0 errors** + +**Decisions** +- Reused the phase-76 window-sentinel pattern verbatim for the same-document proof (per the task's ASSUMPTION) instead of a navigation-timeline count. +- Card-width pin computes container content width minus the card's own 1px borders (clientWidth excludes borders) — a ±1px tolerance caught a first-draft miscalculation. + +**Next pending task:** `03_verify_and_commit.md` (full gate + atomic commit). diff --git a/.agents/reports/86_history_page_width/86_history_page_width__02_e2e_story_suite.a1.validate b/.agents/reports/86_history_page_width/86_history_page_width__02_e2e_story_suite.a1.validate new file mode 100644 index 0000000..bb6cf10 --- /dev/null +++ b/.agents/reports/86_history_page_width/86_history_page_width__02_e2e_story_suite.a1.validate @@ -0,0 +1,85 @@ +........................................................................ [ 4%] +........................................................................ [ 8%] +........................................................................ [ 12%] +........................................................................ [ 16%] +........................................................................ [ 20%] +........................................................................ [ 25%] +........................................................................ [ 29%] +........................................................................ [ 33%] +........................................................................ [ 37%] +........................................................................ [ 41%] +........................................................................ [ 46%] +........................................................................ [ 50%] +........................................................................ [ 54%] +........................................................................ [ 58%] +........................................................................ [ 62%] +........................................................................ [ 66%] +........................................................................ [ 71%] +........................................................................ [ 75%] +........................................................................ [ 79%] +........................................................................ [ 83%] +........................................................................ [ 87%] +........................................................................ [ 92%] +........................................................................ [ 96%] +................................................................ [100%] +=============================== warnings summary =============================== +.venv/lib/python3.13/site-packages/fastapi/testclient.py:1 + /var/home/ducoterra/Projects/Personal/brain_of_reese/.venv/lib/python3.13/site-packages/fastapi/testclient.py:1: StarletteDeprecationWarning: Using `httpx` with `starlette.testclient` is deprecated; install `httpx2` instead. + from starlette.testclient import TestClient as TestClient # noqa + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +================================ tests coverage ================================ +_______________ coverage: platform linux, python 3.13.13-final-0 _______________ + +Name Stmts Miss Cover +-------------------------------------------------- +app/__init__.py 1 0 100% +app/api/__init__.py 0 0 100% +app/api/auth.py 52 0 100% +app/api/chat.py 178 0 100% +app/api/chats.py 110 0 100% +app/api/config.py 7 0 100% +app/api/doc_drafts.py 94 0 100% +app/api/docs.py 50 0 100% +app/api/git_sources.py 212 0 100% +app/api/health.py 10 0 100% +app/api/steering.py 42 0 100% +app/api/suggestions.py 29 0 100% +app/api/sync.py 98 0 100% +app/api/tokens.py 28 0 100% +app/config.py 141 0 100% +app/core/__init__.py 0 0 100% +app/core/auth.py 45 0 100% +app/core/caching.py 108 0 100% +app/core/debugging.py 29 2 93% +app/core/docs_push.py 39 0 100% +app/core/errors.py 5 0 100% +app/core/logging.py 13 0 100% +app/core/rate_limit.py 44 0 100% +app/core/security_headers.py 19 0 100% +app/core/tokens.py 33 0 100% +app/db.py 21 0 100% +app/main.py 64 0 100% +app/models.py 94 0 100% +app/rag/__init__.py 0 0 100% +app/rag/agent.py 222 0 100% +app/rag/archive_upload.py 128 0 100% +app/rag/chunker.py 206 4 98% +app/rag/git_sources.py 14 0 100% +app/rag/importer.py 180 3 98% +app/rag/llm.py 217 0 100% +app/rag/overview.py 71 0 100% +app/rag/prompts.py 88 0 100% +app/rag/retriever.py 150 3 98% +app/rag/scaffolding.py 55 0 100% +app/rag/source_removal.py 41 0 100% +app/rag/sources_meta.py 16 0 100% +app/rag/suggestions.py 27 0 100% +app/rag/summarizer.py 24 0 100% +app/schemas.py 232 0 100% +-------------------------------------------------- +TOTAL 3237 12 99% +coverage gate: app/ 99% (>90%) OK +All checks passed! +0 errors, 0 warnings, 0 informations +validation OK diff --git a/.agents/reports/86_history_page_width/86_history_page_width__03_verify_and_commit.a1.err b/.agents/reports/86_history_page_width/86_history_page_width__03_verify_and_commit.a1.err new file mode 100644 index 0000000..e69de29 diff --git a/.agents/reports/86_history_page_width/86_history_page_width__03_verify_and_commit.a1.md b/.agents/reports/86_history_page_width/86_history_page_width__03_verify_and_commit.a1.md new file mode 100644 index 0000000..5882f15 --- /dev/null +++ b/.agents/reports/86_history_page_width/86_history_page_width__03_verify_and_commit.a1.md @@ -0,0 +1,18 @@ +Task 03 (full gate) complete — all green. Per my harness rules I did **not** commit or move the phase dir (the task's steps 3–4 are the harness's job on success). + +**Gate results (exact commands):** +- `uv run pytest` → 1720 passed +- `uv run pytest --cov=app --cov-report=term-missing` → 1720 passed, **99%** coverage (>90% floor held, no `app/` change) +- `uv run pytest tests/e2e/test_history_page_width.py -v --no-cov` → 5 passed (in isolation) +- `uv run pytest tests/e2e/test_chat_history.py -v --no-cov` → 5 passed; `test_api_tokens.py` → 9 passed; `test_smoke.py` → 3 passed +- `uv run ruff check . && uv run pyright` → All checks passed / 0 errors + +**Manual live check (throwaway Playwright script, E2E-style app boot; output kept in this session log):** 375px — `/history.html` scrollWidth **375** (626 pre-fix), `/tokens.html` 375 (618 pre-fix), `/sources.html` 375; dragging right at the edge moved nothing (scrollLeft stayed 0); swiping the card scrolled its columns internally (296px) while the document stayed put. 1280px — all three cards at 1110px container width, 0px internal scroll. **ALL CHECKS PASSED.** + +**Scope:** working tree holds exactly `frontend/assets/styles.css` (+12: `position: relative` + root-cause comment), the two new test files, and phase files (01/02 already in `complete/`; `00_phase.md` + `03` still in `todo/` for the harness). No markup/JS/`app/` changes. + +**Deviations/flags:** +- No `git commit` / no `mv` of the phase dir — harness owns both (overrides task steps 3–4). +- `.agents/remediation_plan.md` (untracked, 2026-09-07 security-audit artifact) is **not** part of this phase — exclude it from the phase-86 commit. + +**Next pending:** `87_big_read_progress` (separate phase). diff --git a/.agents/reports/86_history_page_width/86_history_page_width__03_verify_and_commit.a1.validate b/.agents/reports/86_history_page_width/86_history_page_width__03_verify_and_commit.a1.validate new file mode 100644 index 0000000..bb6cf10 --- /dev/null +++ b/.agents/reports/86_history_page_width/86_history_page_width__03_verify_and_commit.a1.validate @@ -0,0 +1,85 @@ +........................................................................ [ 4%] +........................................................................ [ 8%] +........................................................................ [ 12%] +........................................................................ [ 16%] +........................................................................ [ 20%] +........................................................................ [ 25%] +........................................................................ [ 29%] +........................................................................ [ 33%] +........................................................................ [ 37%] +........................................................................ [ 41%] +........................................................................ [ 46%] +........................................................................ [ 50%] +........................................................................ [ 54%] +........................................................................ [ 58%] +........................................................................ [ 62%] +........................................................................ [ 66%] +........................................................................ [ 71%] +........................................................................ [ 75%] +........................................................................ [ 79%] +........................................................................ [ 83%] +........................................................................ [ 87%] +........................................................................ [ 92%] +........................................................................ [ 96%] +................................................................ [100%] +=============================== warnings summary =============================== +.venv/lib/python3.13/site-packages/fastapi/testclient.py:1 + /var/home/ducoterra/Projects/Personal/brain_of_reese/.venv/lib/python3.13/site-packages/fastapi/testclient.py:1: StarletteDeprecationWarning: Using `httpx` with `starlette.testclient` is deprecated; install `httpx2` instead. + from starlette.testclient import TestClient as TestClient # noqa + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +================================ tests coverage ================================ +_______________ coverage: platform linux, python 3.13.13-final-0 _______________ + +Name Stmts Miss Cover +-------------------------------------------------- +app/__init__.py 1 0 100% +app/api/__init__.py 0 0 100% +app/api/auth.py 52 0 100% +app/api/chat.py 178 0 100% +app/api/chats.py 110 0 100% +app/api/config.py 7 0 100% +app/api/doc_drafts.py 94 0 100% +app/api/docs.py 50 0 100% +app/api/git_sources.py 212 0 100% +app/api/health.py 10 0 100% +app/api/steering.py 42 0 100% +app/api/suggestions.py 29 0 100% +app/api/sync.py 98 0 100% +app/api/tokens.py 28 0 100% +app/config.py 141 0 100% +app/core/__init__.py 0 0 100% +app/core/auth.py 45 0 100% +app/core/caching.py 108 0 100% +app/core/debugging.py 29 2 93% +app/core/docs_push.py 39 0 100% +app/core/errors.py 5 0 100% +app/core/logging.py 13 0 100% +app/core/rate_limit.py 44 0 100% +app/core/security_headers.py 19 0 100% +app/core/tokens.py 33 0 100% +app/db.py 21 0 100% +app/main.py 64 0 100% +app/models.py 94 0 100% +app/rag/__init__.py 0 0 100% +app/rag/agent.py 222 0 100% +app/rag/archive_upload.py 128 0 100% +app/rag/chunker.py 206 4 98% +app/rag/git_sources.py 14 0 100% +app/rag/importer.py 180 3 98% +app/rag/llm.py 217 0 100% +app/rag/overview.py 71 0 100% +app/rag/prompts.py 88 0 100% +app/rag/retriever.py 150 3 98% +app/rag/scaffolding.py 55 0 100% +app/rag/source_removal.py 41 0 100% +app/rag/sources_meta.py 16 0 100% +app/rag/suggestions.py 27 0 100% +app/rag/summarizer.py 24 0 100% +app/schemas.py 232 0 100% +-------------------------------------------------- +TOTAL 3237 12 99% +coverage gate: app/ 99% (>90%) OK +All checks passed! +0 errors, 0 warnings, 0 informations +validation OK diff --git a/frontend/assets/styles.css b/frontend/assets/styles.css index d5291d0..ac939a4 100644 --- a/frontend/assets/styles.css +++ b/frontend/assets/styles.css @@ -1741,7 +1741,19 @@ details.thinking .thinking-text ul { margin: 0 0 0.5rem; } other door: the admin password login (the static ?next=/ is the no-JS fallback). */ +/* Phase 86: the card is the containing block for the + position:absolute .visually-hidden elements it hosts (the table +