phase: 174_git_sources_card_rhythm
All checks pass. Both docs verified consistent. Final state — no live-infrastructure changes were needed (pure CSS fix; verification ran against the already-running local dev DB).
**Phase 174 final verification pass — report**
- **Verified (no new work needed; both tasks already complete in `complete/`):** the single `#git-sources-content { display:flex; flex-direction:column; gap:1.25rem }` rule in `frontend/assets/styles.css` (with the phase-174 root-cause comment), `.git-sources-shell` untouched, the 4-test unit pin module, and the 4-test Playwright suite.
- **Full suite:** `uv run pytest --cov=app --cov-report=term-missing` → **4116 passed, 99% `app/` coverage** (gate >90% ✓).
- **Lint/types:** `uv run ruff check .` → clean; `uv run pyright` → 0 errors, 0 warnings.
- **Dedicated E2E in isolation:** `uv run pytest tests/e2e/test_git_sources_card_rhythm.py -v --no-cov` → **4 passed** (1440px + 375px bounding-box rhythm pins 20±2px, hidden-children + revealed-joins-rhythm, anonymous gate, a11y/no-CDN).
- **Regression set, each in isolation:** `test_git_sources_admin.py` **6 passed**, `test_archive_upload_sources.py` **5 passed**, `test_git_source_dates.py` **4 passed**.
- **Completion criteria:** cards stack with uniform ≈20px gap at both viewports ✓; hidden children stay hidden / gate+content flip intact ✓; ≤640px forms column-stack + table scrolls inside its card (no page-level h-scroll) ✓; full suite + coverage + ruff + pyright ✓; dedicated + regression E2E suites ✓.
- **Documentation:** README.md reviewed in full (every `.env.example` var documented; all documented routes/pages/endpoints exist; every config default cross-checked against `app/config.py`; payload-limit table, ports 8123/8901, Containerfile/compose/entrypoint claims all match) — **verified consistent, no changes needed**. AGENTS.md verified (all referenced files/sections exist: PLAN §2/§7.1/§7.4/§9, `response_budget.py`, `debugging.py` conditional import, `.agents/` tracked + gitignore rules, `commit.gpgsign=false`, phase-pinned CSS classes) — **verified consistent, no changes needed**.
- **Notable:** commit + phase-dir move are handled by the harness per pipeline rules (no git history/index touched by this pass); no live-infrastructure changes were required.
- **Next pending phase:** `175_history_pagination` (in `todo/`).
This commit is contained in:
@@ -3197,6 +3197,24 @@ a.answer-image:hover { text-decoration: underline; } /* flat — the caption und
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* Phase 174 (owner bug report 2026-10-21): the shell's gap only
|
||||
separates the gate from this wrapper — every visible card
|
||||
(page-head, the load-error alert, the env note, the two form
|
||||
cards, the table card) is a child of THIS div, which was a
|
||||
plain block, so the cards stacked flush (1px borders touching).
|
||||
The phase-171 #settings-content idiom: the wrapper itself is
|
||||
the rhythm column, reusing the shell's own 1.25rem token — no
|
||||
new spacing value. The hidden children (#git-sources-load-error,
|
||||
#git-sources-env-note — the env note's CLASS is the singular
|
||||
git-source-env-note) keep the UA [hidden] display:none inside
|
||||
a flex parent, so git-sources.js's reveal lifecycle is
|
||||
untouched; a revealed one joins the rhythm. */
|
||||
#git-sources-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1.25rem;
|
||||
}
|
||||
|
||||
/* Add forms — the tuning form's surface as a single row: visible
|
||||
label + mono location input (git URLs may embed credentials, so the
|
||||
input is mono) + the brand button; wraps to a column at narrow
|
||||
|
||||
Reference in New Issue
Block a user