phase: 135_git_source_branch
All verification complete. No edits were needed by this pass — the phase work and docs were already consistent and green. **Phase 135 final verification pass — report** - Verified all 5 tasks' work present & correct: migration 0024 (reversible), `GitSource.branch` + 4 schema shapes, `validate_branch_name` (full check order per design), `clone_or_pull(…, branch)` (HEAD guard first, `--branch` clone, fetch+ff merge), both call sites pass `row.branch`, UI (add-form field, editor field, row tag), `file://` URL transport. - Completion criteria: (1) branch-mirrored through Sync + CLI — **pass** (E2E + integration); (2) `branch=None` byte-identical — **pass** (`test_branch_none_argv_is_byte_identical_pre_phase_sequence` green); (3) fixed 422s / local-row 422 / tri-state — **pass**; (4) mismatch fails loudly with remove-and-re-add — **pass** (E2E); (5) coverage 99% >90%, E2E isolated green — **pass**; (6) no regressions — **pass**. - Tests: `uv run pytest --cov=app --cov-report=term-missing` → 3223 passed, app/ 99%; `uv run pytest tests/e2e/test_git_source_branch.py -v --no-cov` → 4 passed (16.4 s); `uv run ruff check .` clean; `uv run pyright` → 0 errors, 0 warnings. - Documentation: README.md reviewed in full — phase-135 branch section accurate; the phase's README diff also correctly fixed a pre-existing stale line (shallow `--depth 1` clone vs full-history, phase 107). Routes, env defaults, feature lists verified against code. AGENTS.md — all 10 rules + quick-reference verified (referenced tests, PLAN.md, phases dirs, commands all accurate). **Verified consistent — no changes needed.** - No live-infrastructure changes (dev DB already running and healthy; no live steps in this phase). - Next pending phase: `.agents/phases/todo/136_force_push_reset`.
This commit is contained in:
@@ -371,10 +371,14 @@ def test_admin_editor_token_opens_blank_and_save_keeps_token(
|
||||
|
||||
# One PATCH, 200, and the body OMITS the token key (blank = the
|
||||
# tri-state no-change — the key is not sent, let alone empty).
|
||||
# Phase 135 (task 04): a GIT row's PATCH body ALWAYS includes the
|
||||
# branch key (the tri-state asymmetry — a blank save is the
|
||||
# deliberate CLEAR leg: "" here; the seeded row stores no branch,
|
||||
# so the clear is a no-op and the stored token is untouched).
|
||||
assert patch_statuses == [200], f"the blank-token save did not 200: {patch_statuses}"
|
||||
assert len(patch_bodies) == 1 and patch_bodies[0] is not None
|
||||
assert "token" not in patch_bodies[0], "a blank token must OMIT the PATCH key"
|
||||
assert patch_bodies[0] == {"ignore_paths": []}
|
||||
assert patch_bodies[0] == {"ignore_paths": [], "branch": ""}
|
||||
|
||||
# The row is intact and the stored token is KEPT (the no-change
|
||||
# tri-state, verified in the trusted store).
|
||||
|
||||
Reference in New Issue
Block a user