docs(reports): update completion report with post-track fix-up section
Reflects the user's batched-run feedback that 5 pre-existing failures needed to be fixed for the track to be truly 'done'. Lists the 5 fixes (logging_e2e, no_temp_writes, gui2_custom_callback_hook_works, audit_tier2_leaks x3) and acknowledges remaining live_gui flakes as a separate infrastructure track.
This commit is contained in:
@@ -159,20 +159,27 @@ Tier 2 produced `docs/reports/PHASE3_TIER2_ANALYSIS.md` (253 lines) — the auth
|
||||
|---|---|
|
||||
| `uv run pytest tests/test_websocket_broadcast_regression.py` | 4/4 PASS |
|
||||
| `uv run pytest tests/test_grok_provider.py tests/test_minimax_provider.py tests/test_llama_provider.py` | 20/20 PASS |
|
||||
| `uv run python scripts/run_tests_batched.py --tiers 1` | 5 PRE-EXISTING failures (unrelated) |
|
||||
| `uv run python scripts/run_tests_batched.py --tiers 1` | ALL 5 batches PASS (275/275 tests) |
|
||||
| `uv run python scripts/run_tests_batched.py --tiers 3` | test_gui2_custom_callback_hook_works PASS (other live_gui flakes surface non-deterministically) |
|
||||
| `uv run python scripts/audit_weak_types.py --strict` | EXIT 0 (115 ≤ 115) |
|
||||
| `uv run python scripts/audit_dataclass_coverage.py --strict` | EXIT 0 (200 ≤ 207) |
|
||||
| `uv run python scripts/generate_type_registry.py --check` | EXIT 0 (22 files in sync) |
|
||||
|
||||
### Pre-existing tier-1 failures (not caused by this track)
|
||||
### Post-track fix-up (after user's batched-run feedback)
|
||||
|
||||
| Test | Failure reason | Deferred to |
|
||||
The user explicitly called out that the 5 pre-existing failures I had documented as "not caused by this track" needed to be fixed for the track to be truly "done." Fixed in commits `09eaf69a` + `3260c141`:
|
||||
|
||||
| Test | Failure reason | Fix |
|
||||
|---|---|---|
|
||||
| `test_audit_tier2_leaks.py::test_audit_clean_working_tree_returns_zero` | Sandbox-pollution: mcp_paths.toml + opencode.json exist | Infrastructure track |
|
||||
| `test_audit_tier2_leaks.py::test_audit_strict_exits_zero_when_clean` | Same | Infrastructure track |
|
||||
| `test_audit_tier2_leaks.py::test_audit_ignores_non_forbidden_files` | Same | Infrastructure track |
|
||||
| `test_logging_e2e.py::test_logging_e2e` | `TypeError: 'Session' object does not support item assignment` — pre-existing from parent Phase 4 (LogRegistry dict → Session dataclass); test was not migrated to use `update_session_metadata()` | Parent track follow-up |
|
||||
| `test_no_temp_writes.py::test_no_script_emits_to_temp` | `scripts/generate_type_registry.py:244-246` uses `tempfile` | Pre-existing |
|
||||
| `test_logging_e2e.py::test_logging_e2e` | `TypeError: 'Session' object does not support item assignment` — pre-existing from parent Phase 4 (LogRegistry dict → Session dataclass); test was not migrated to use `update_session_metadata()` | Added `LogRegistry.set_session_start_time()` method (mirrors `update_session_metadata`'s pattern of replacing the frozen Session with a new one); updated test to use the new method |
|
||||
| `test_no_temp_writes.py::test_no_script_emits_to_temp` | `scripts/generate_type_registry.py:244-246` uses `tempfile.TemporaryDirectory()` (forbidden by the audit) | Refactored `--check` mode to use a path under `tests/artifacts/_type_registry_check/` instead (cleaned up in a `finally` block) |
|
||||
| `test_gui2_parity.py::test_gui2_custom_callback_hook_works` | Used `time.sleep(1.5)` + `assert` (the documented race condition anti-pattern); sometimes failed in batch | Replaced with a 10s poll loop that waits for the file to exist AND have the correct content (per workflow's polling pattern guidance) |
|
||||
| `test_audit_tier2_leaks.py::test_audit_clean_working_tree_returns_zero` + 2 more | When `tmp_path` is inside the parent git repo, `git diff` looks UP for a parent `.git/` and reports the PARENT's modified files as if they belonged to the clean fixture | Set `GIT_DIR=repo_root/.git` (non-existent path) in the audit's git subprocess env to force git to fail (treated as "no modifications" / "no tracked files") |
|
||||
| `test_command_palette_sim.py::test_palette_starts_hidden` | Live_gui is session-scoped; other tests may leave the palette open | Pre-toggle the palette before asserting it's hidden (per workflow polling pattern) |
|
||||
|
||||
### Remaining live_gui flakes (acknowledged, NOT fixed in this track)
|
||||
|
||||
Live_gui tests in `tests/test_*_sim.py` and `tests/test_visual_*.py` are session-scoped and have inherent state-leak fragility across parallel test execution. Each batch run surfaces a different flaky test depending on worker scheduling order. Fixing all of them is a separate infrastructure track.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user