chore(agent): track .agent/ planning tree in git
Remove the blanket .agent/ gitignore so the phase roadmap, user stories, reports, and PLAN.md are versioned with the code. Only runtime artifacts (.agent/phase-sessions/, .agent/pipeline.log) remain ignored. Update AGENTS.md git protocol rule to match.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
**Task 01 complete — report**
|
||||
|
||||
- `frontend/index.html` + `frontend/sources.html`: admin-only `#nav-tuning` link (`<a href="/tuning.html" class="nav-link" id="nav-tuning" hidden>`) added inside `<nav class="app-nav">` immediately after `#nav-sources`, with the spec's phase-29 comments; no `is-active`, markup/indentation preserved. (Found already applied from a prior interrupted run — verified byte-for-byte against spec, `header.js` lines 69–70 already gate the reveal, left untouched.)
|
||||
- **Regression found & fixed:** the 3rd nav pill made the chat header overflow at 375px admin (381 > 375, `test_mobile_bar_fits_and_heights_held` failed). Fixed with a mobile-only (≤640px) CSS squeeze in `frontend/assets/styles.css`: `.nav-link` padding `0.55rem→0.4rem` + font `0.88rem→0.84rem`, `.app-nav` gap `0.25rem→0.15rem`, `.header-inner` gap `0.6rem→0.5rem` — bar fits 375px *and* 360px, 44px touch floor and 58/64px pinned heights unchanged (brand text was already the exhausted squeeze target).
|
||||
|
||||
Results:
|
||||
- `uv run pytest --cov=app --cov-report=term-missing` → 390 passed, TOTAL **99%** (no backend change, gate >90%)
|
||||
- `uv run ruff check . && uv run pyright` → clean (0 errors)
|
||||
- E2E in isolation, all green: `test_shared_header` 6, `test_header_consistency` 3, `test_responsive_polish` 7, `test_dark_tech_theme` 6, `test_smoke` 3, `test_global_tuning` 6, `test_admin_auth` 6
|
||||
|
||||
- No commit made (commit is task 02's). Working tree also carries the owner's manual `TODO.md` edits — out of scope, left untouched for task 02's selective staging.
|
||||
- Next pending task: `02_tuning_nav_e2e_and_regression.md` (new `test_tuning_nav_link.py` suite + regression verify + commit).
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
........................................................................ [ 18%]
|
||||
........................................................................ [ 36%]
|
||||
........................................................................ [ 55%]
|
||||
........................................................................ [ 73%]
|
||||
........................................................................ [ 92%]
|
||||
.............................. [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 22 0 100%
|
||||
app/api/chat.py 95 0 100%
|
||||
app/api/docs.py 23 0 100%
|
||||
app/api/health.py 10 0 100%
|
||||
app/api/steering.py 42 0 100%
|
||||
app/api/suggestions.py 8 0 100%
|
||||
app/config.py 60 0 100%
|
||||
app/core/__init__.py 0 0 100%
|
||||
app/core/auth.py 20 0 100%
|
||||
app/core/debugging.py 29 2 93%
|
||||
app/core/logging.py 13 0 100%
|
||||
app/db.py 21 0 100%
|
||||
app/main.py 36 0 100%
|
||||
app/models.py 46 0 100%
|
||||
app/rag/__init__.py 0 0 100%
|
||||
app/rag/chunker.py 206 4 98%
|
||||
app/rag/importer.py 150 5 97%
|
||||
app/rag/llm.py 105 0 100%
|
||||
app/rag/prompts.py 44 0 100%
|
||||
app/rag/retriever.py 93 3 97%
|
||||
app/rag/suggestions.py 27 0 100%
|
||||
app/schemas.py 68 0 100%
|
||||
--------------------------------------------
|
||||
TOTAL 1119 14 99%
|
||||
coverage gate: app/ 99% (>90%) OK
|
||||
All checks passed!
|
||||
0 errors, 0 warnings, 0 informations
|
||||
validation OK
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
Phase 29 task 02 complete. Report:
|
||||
|
||||
**Implemented**
|
||||
- `tests/e2e/test_tuning_nav_link.py` — 4-test story suite: admin sees `#nav-tuning` on Chat/Sources (visible after whoami, `href=/tuning.html`, click navigates, becomes `is-active` on the tuning page), anonymous sees it `hidden` + `[hidden]` on both pages (Sign in visible, Sources hidden), and a11y/no-CDN (real keyboard Tab walk lands focus on the labeled `<a>` with solid ≥2px `:focus-visible` outline; all `script[src]`/`link[href]` same-origin or `data:`).
|
||||
- Committed the phase-29 markup from task 01 (nav link in `frontend/index.html` + `frontend/sources.html`, mobile header squeeze in `frontend/assets/styles.css`) in the same atomic commit.
|
||||
|
||||
**Gates** (all green)
|
||||
- `uv run pytest tests/e2e/test_tuning_nav_link.py -v --no-cov` → 4 passed
|
||||
- In isolation: `test_header_consistency.py` 3, `test_shared_header.py` 6, `test_smoke.py` 3, `test_global_tuning.py` 6 — all passed
|
||||
- `uv run pytest tests/integration/test_api.py::test_html_pages_served_locally_no_cdn -v --no-cov` → 5 passed (task file cited stale name `test_index_html_served_locally`; this is the actual no-CDN gate covering `/` + `/sources.html`)
|
||||
- `uv run pytest` → 390 passed; `--cov=app` TOTAL 99% (1119/14) — unchanged (no backend change)
|
||||
- `uv run ruff check .` clean; `uv run pyright` → 0 errors
|
||||
|
||||
**Notes**
|
||||
- Playwright `to_have_class` treats strings as exact match — used `re.compile(r"\bis-active\b")` like the existing suites.
|
||||
- One `--no-gpg-sign` commit: `3841bd5 feat(ui): expose Global Tuning from Chat + Sources headers (admin-only Tuning nav link)` (7 files). Phase dir moved to `.agent/phases/complete/29_tuning_nav_link/`. `TODO.md` left uncommitted (not a phase file).
|
||||
|
||||
**Next pending task:** none — `.agent/phases/todo/` is empty.
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
........................................................................ [ 18%]
|
||||
........................................................................ [ 36%]
|
||||
........................................................................ [ 55%]
|
||||
........................................................................ [ 73%]
|
||||
........................................................................ [ 92%]
|
||||
.............................. [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 22 0 100%
|
||||
app/api/chat.py 95 0 100%
|
||||
app/api/docs.py 23 0 100%
|
||||
app/api/health.py 10 0 100%
|
||||
app/api/steering.py 42 0 100%
|
||||
app/api/suggestions.py 8 0 100%
|
||||
app/config.py 60 0 100%
|
||||
app/core/__init__.py 0 0 100%
|
||||
app/core/auth.py 20 0 100%
|
||||
app/core/debugging.py 29 2 93%
|
||||
app/core/logging.py 13 0 100%
|
||||
app/db.py 21 0 100%
|
||||
app/main.py 36 0 100%
|
||||
app/models.py 46 0 100%
|
||||
app/rag/__init__.py 0 0 100%
|
||||
app/rag/chunker.py 206 4 98%
|
||||
app/rag/importer.py 150 5 97%
|
||||
app/rag/llm.py 105 0 100%
|
||||
app/rag/prompts.py 44 0 100%
|
||||
app/rag/retriever.py 93 3 97%
|
||||
app/rag/suggestions.py 27 0 100%
|
||||
app/schemas.py 68 0 100%
|
||||
--------------------------------------------
|
||||
TOTAL 1119 14 99%
|
||||
coverage gate: app/ 99% (>90%) OK
|
||||
All checks passed!
|
||||
0 errors, 0 warnings, 0 informations
|
||||
validation OK
|
||||
Reference in New Issue
Block a user