Private
Public Access
conductor(track): prune [shipped] entries from Follow-up section (FR2)
This commit is contained in:
@@ -655,61 +655,6 @@ Lightweight chronology; full spec/plan/state per track is in the linked folder.
|
||||
|
||||
*Out of scope (documented in spec §7): 4 RAG test fixes (separate RAG subsystem track), the `_send_<vendor>()` → `_send_<vendor>_result()` rename (not needed; tests work with current names), 23 lower-impact weak-type files (next major track: `data_structure_strengthening_20260606`), `live_gui_mock_injection_20260615` infrastructure (separate infrastructure track).*
|
||||
|
||||
#### Track: RAG Test Failures Fix (small bug-fix track) `[track-created: 2026-06-15]` `[shipped: 2026-06-15]`
|
||||
*Link: [./tracks/rag_test_failures_20260615/](./tracks/rag_test_failures_20260615/), Spec: [./tracks/rag_test_failures_20260615/spec.md](./tracks/rag_test_failures_20260615/spec.md), Plan: [./tracks/rag_test_failures_20260615/plan.md](./tracks/rag_test_failures_20260615/plan.md), Metadata: [./tracks/rag_test_failures_20260615/metadata.json](./tracks/rag_test_failures_20260615/metadata.json)*
|
||||
|
||||
*Status: 2026-06-15 — **Shipped**. 4 atomic commits. First fully green baseline since `data_oriented_error_handling_20260606` shipped 2026-06-12 (1288 pass + 4 skip + 0 fail; was 1282 + 4 + 3 pre-track). All 11 batched test tiers pass.*
|
||||
|
||||
*Goal: Fix the 3 remaining pre-existing test failures (down from 4 as the parent track documented; `test_rag_integration.py` was inadvertently fixed by `public_api_migration_and_ui_polish_20260615` Phase 2 follow-up commit `26e1b652`). All 3 share the same root cause: `'NoneType' object has no attribute 'get'` error in `src/rag_engine.py`, surfaced via `_rebuild_rag_index` → `get_all_indexed_paths()` (line 331: `m.get('path')` on `None` metadata) and `_validate_collection_dim_result` (line 150: `if not embeddings` raising `ValueError` on non-empty numpy arrays).*
|
||||
|
||||
*3 tests fixed by this track:*
|
||||
- *`tests/test_rag_phase4_final_verify.py::test_phase4_final_verify` (fails at line 65) — **PASSES** as of commit `35581163`*
|
||||
- *`tests/test_rag_phase4_stress.py::test_rag_large_codebase_verification_sim` (fails at line 48) — **PASSES** as of commit `35581163`*
|
||||
- *`tests/test_rag_visual_sim.py::test_rag_full_lifecycle_sim` (was listed as failing in spec §1.1, but actually passed at track execution time; the chromadb init path was already protected by the new tests in `test_rag_sync_none_error.py`)*
|
||||
|
||||
*Implementation summary (4 atomic commits):*
|
||||
- *`fix(rag): handle None metadata in get_all_indexed_paths and non-empty numpy in dim check` (`35581163`) — the production fix*
|
||||
- *`conductor(checkpoint): Phase 3 complete` (`6a0ac357`) — empty checkpoint*
|
||||
- *`docs(rag): add troubleshooting section for NoneType.get error` (`d89c5810`) — guide_rag.md update*
|
||||
- *`conductor(track): mark rag_test_failures_20260615 as completed` (pending) — metadata + tracks.md*
|
||||
|
||||
*New test file: `tests/test_rag_sync_none_error.py` (3 tests, all pass):*
|
||||
- *`test_dim_check_does_not_raise_on_non_empty_ndarray` — guards against the `if not embeddings` numpy ValueError*
|
||||
- *`test_get_all_indexed_paths_handles_none_metadata` — guards against `m.get('path')` on None*
|
||||
- *`test_get_all_indexed_paths_returns_paths_with_metadata` — positive control that normal flow still works*
|
||||
|
||||
*5 phases: Phase 1 (investigation + reproducing test), Phase 2 (fix), Phase 3 (full + batched test verification), Phase 4 (docs update), Phase 5 (metadata + tracks.md). ~10 tasks, 4 atomic commits, ~30 min Tier 2 work (much faster than the 0.5-1 day estimate).*
|
||||
|
||||
*Critical audit findings (2026-06-15): The `RAGConfig()` default is correct (vector_store is not None; provider is 'mock' by default). The `RAGEngine` with mock vector store constructs successfully (verified by direct instantiation). The error originates in the RAG sync worker at `src/app_controller.py:1480`. Most likely candidates for the `.get(None)` call: `src/rag_engine.py:149` (embeddings = res.get('embeddings') in `_validate_collection_dim_result`) or a subtle config field that becomes None. Diagnostic strategy: add `traceback.format_exc()` to the except clause, capture the full traceback, identify the exact call site, fix surgically, remove the diagnostic.*
|
||||
|
||||
*`blocks: data_structure_strengthening_20260606` (cleaner codebase makes type-alias replacement easier) and the user's stated `send_result` → `send` mass rename.*
|
||||
|
||||
*Out of scope (deferred to separate tracks): the `send_result` → `send` mass rename (user's stated manual refactor), 23 lower-impact weak-type files (`data_structure_strengthening_20260606`), `live_gui_mock_injection_20260615` infrastructure (separate track), RAG test quality cleanup (poll loops, etc.; separate track).*
|
||||
|
||||
#### Track: Tier 2 Autonomous Sandbox (unattended track execution with bounded blast radius) `[track-created: 2026-06-16]` [shipped: 2026-06-16]
|
||||
*Link: [./tracks/tier2_autonomous_sandbox_20260616/](./tracks/tier2_autonomous_sandbox_20260616/), Spec: [./tracks/tier2_autonomous_sandbox_20260616/spec.md](./tracks/tier2_autonomous_sandbox_20260616/spec.md), Plan: [./tracks/tier2_autonomous_sandbox_20260616/plan.md](./tracks/tier2_autonomous_sandbox_20260616/plan.md), Metadata: [./tracks/tier2_autonomous_sandbox_20260616/metadata.json](./tracks/tier2_autonomous_sandbox_20260616/metadata.json), Guide: [../../docs/guide_tier2_autonomous.md](../../docs/guide_tier2_autonomous.md)*
|
||||
|
||||
*Status: 2026-06-16 — SHIPPED. 9 phases, 19 failcount tests (100% coverage), 8 report writer tests (100% coverage), 12 slash-command contract tests, 3 opt-in sandbox tests, 1 smoke e2e test (double-gated). Meta-tooling track — adds a sibling clone + 3-layer enforcement stack (OpenCode permissions + Windows restricted token + git hooks) for unattended Tier 2 execution. No `permission: ask` prompts during a normal run. 4 hard git bans enforced (`git restore`, `git push*`, `git checkout`, `git reset`); failcount threshold gives up after 3 red/green failures or 30 min no-progress, writes a markdown failure report with 7 sections + .STOPPED flag.*
|
||||
|
||||
*Goal: Eliminate the `permission: ask` bottleneck for well-regularized tracks (TDD red/green with atomic per-task commits) by running Tier 2 unattended in a sibling clone at `C:\projects\manual_slop_tier2\`. Bounded blast radius via 3-layer enforcement; bounded run via failcount threshold; auditable via per-run state.json + (on give-up) markdown failure report.*
|
||||
|
||||
*Deliverables: 7 new files in main repo (`scripts/tier2/{__init__.py, failcount.py, failcount.toml, write_report.py, run_track.py, setup_tier2_clone.ps1, run_tier2_sandboxed.ps1}` + 3 templates in `conductor/tier2/` + 2 git hooks in `conductor/tier2/githooks/` + 1 user guide `docs/guide_tier2_autonomous.md`) + 5 new test files + 1 trivial smoke track fixture in `tests/artifacts/`. pyproject.toml gets 2 new pytest markers (`tier2_sandbox`, `tier2_smoke`). The main repo's `opencode.json` is UNTOUCHED — Tier 1 retains its `permission: ask` workflow.*
|
||||
|
||||
*Test inventory: 19 failcount unit tests (default-on; 100% coverage on `scripts/tier2/failcount.py`); 8 report writer tests (opt-in via `TIER2_SANDBOX_TESTS=1`; 100% coverage on `scripts/tier2/write_report.py`); 12 slash command spec contract tests (default-on); 1 bootstrap -WhatIf test (opt-in); 1 sandbox enforcement pre-push hook test (opt-in); 1 smoke e2e test (double-gated).*
|
||||
|
||||
`blocks:` None (meta-tooling; no source code impact on the Manual Slop app).
|
||||
|
||||
#### Track: Rename send_result to send (sandbox test track) `[track-created: 2026-06-16]` [shipped: 2026-06-17]
|
||||
*Link: [./tracks/send_result_to_send_20260616/](./tracks/send_result_to_send_20260616/), Spec: [./tracks/send_result_to_send_20260616/spec.md](./tracks/send_result_to_send_20260616/spec.md), Plan: [./tracks/send_result_to_send_20260616/plan.md](./tracks/send_result_to_send_20260616/plan.md), Metadata: [./tracks/send_result_to_send_20260616/metadata.json](./tracks/send_result_to_send_20260616/metadata.json)*
|
||||
|
||||
*Status: 2026-06-17 - SHIPPED. 6 phases, 10 atomic rename commits + 12 plan/script commits (22 total). The FIRST end-to-end test of the `tier2_autonomous_sandbox_20260616` sandbox. Refactor track (mechanical rename; no behavior change). Scope: 37 files modified (6 src/ + 27 tests/ + 3 docs + 1 metadata/state); 0 files added, 0 files deleted. Spec estimated 38 files; actual 37 (test_deprecation_warnings.py no longer exists in the repo).*
|
||||
|
||||
*Goal: Revert the 2026-06-15 public_api_migration rename (`ai_client.send` -> `ai_client.send_result`) back to `ai_client.send`. The migration was driven by the data-oriented error handling convention; the user wants the shorter name now that the Tier 2 autonomous sandbox can do the rename safely. Pure mechanical rename across 37 files + a surgical rewrite of one stale deprecation section in error_handling.md.*
|
||||
|
||||
*Deliverables: 0 new files, 0 deleted files. The 22 commits include 10 atomic rename commits (1 in src/ai_client.py + 1 batch in 5 other src/ + 5 per-file in top 5 tests + 1 batch in 22 remaining tests + 1 in 3 docs) and 12 plan/script commits (audit trail + helper scripts). The audit_tier2 subdirectory in scripts/tier2/ accumulates the rename + plan-update helper scripts as a record of the mechanical change pattern.*
|
||||
|
||||
*Test inventory: 100/101 tests pass in the 26 files directly affected by the rename. 1 pre-existing failure (test_headless_service.py::test_generate_endpoint) unrelated to the rename - confirmed by running the same test against origin/master baseline where it also fails (missing credentials.toml). 7 broader suite failures are all pre-existing credentials.toml issues, also confirmed against origin/master.*
|
||||
|
||||
`blocks:` None (independent refactor + sandbox test).
|
||||
|
||||
#### Track: Tier 2 Sandbox - Move State/Failures Off AppData `[track-created: 2026-06-18]`
|
||||
@@ -784,39 +729,6 @@ Lightweight chronology; full spec/plan/state per track is in the linked folder.
|
||||
---
|
||||
|
||||
|
||||
#### Track: Live GUI Test Infrastructure Fixes (test_execution_sim_live crash + test_live_gui_workspace_exists race) `[track-created: 2026-06-18]` [shipped: 2026-06-18]
|
||||
*Link: [./tracks/live_gui_test_fixes_20260618/](./tracks/live_gui_test_fixes_20260618/), Spec: [./tracks/live_gui_test_fixes_20260618/spec.md](./tracks/live_gui_test_fixes_20260618/spec.md), Plan: [./tracks/live_gui_test_fixes_20260618/plan.md](./tracks/live_gui_test_fixes_20260618/plan.md), Metadata: [./tracks/live_gui_test_fixes_20260618/metadata.json](./tracks/live_gui_test_fixes_20260618/metadata.json), Report: [../../docs/reports/TRACK_COMPLETION_live_gui_test_fixes_20260618.md](../../docs/reports/TRACK_COMPLETION_live_gui_test_fixes_20260618.md)*
|
||||
|
||||
*Status: 2026-06-18 - SHIPPED. 4 phases, 8 atomic commits (1 setup + 4 TDD/test/fix + 2 docs + 1 audit). Pre-conditions for sub-track 2's full closure. Scope: 2 issues fixed; 2 src files modified + 2 test files extended + 1 conftest modified + 2 docs + 2 audit logs. Test result: 11/11 tiers PASS clean (~825s total).*
|
||||
|
||||
*Goal: Fix the 2 documented test infrastructure issues that blocked sub-track 2 (`result_migration_small_files_20260617`) from full closure. The 2 issues were reported as "documented issues" by sub-track 2 Phase 13 (commit `30ca3265`). Both are pre-existing (not regressions from the Result[T] migration).*
|
||||
|
||||
*The 2 fixes:*
|
||||
|
||||
*Issue 1: `test_execution_sim_live` GUI subprocess crash (`tier-3-live_gui`)*
|
||||
- Symptom: GUI subprocess (port 8999) crashes mid-test with `0xC00000FD = STATUS_STACK_OVERFLOW`
|
||||
- Root cause: `imgui.set_window_focus("Response")` was called directly during the response panel render, exhausting the GUI main thread's 1.94 MB stack on Windows
|
||||
- Fix: defer the focus call to the next frame's idle phase via a new `_pending_focus_response` flag (commits `d02c6d56`, `0f796d7d`)
|
||||
- Same root cause as `test_z_negative_flows.py` (documented in `docs/reports/NEGATIVE_FLOWS_INVESTIGATION_20260617_REFINED.md`)
|
||||
|
||||
*Issue 2: `test_live_gui_workspace_exists` xdist race (`tier-1-unit-gui`)*
|
||||
- Symptom: xdist race where the owner worker's teardown removes the shared workspace path before a client worker's test can assert it exists
|
||||
- Root cause: `live_gui_workspace` fixture in `tests/conftest.py:727` returned `handle.workspace` without ensuring the path existed
|
||||
- Fix: call `workspace.mkdir(parents=True, exist_ok=True)` before returning (commits `3fdb2592`, `bf6bc67b`)
|
||||
- Pre-existing on parent commit `4ab7c732` (verified in `tests/artifacts/PHASE14_PARENT_VERIFICATION.log`)
|
||||
|
||||
*Deliverables:*
|
||||
- *1 setup commit (`chore(scripts): relocate Tier 2 state paths to project-relative`) - honors NEVER USE APPDATA directive; the failcount state and write_report failures directory now default to project-relative paths under `tests/artifacts/`*
|
||||
- *2 TDD red + 2 TDD green commits (one pair per issue)*
|
||||
- *1 audit commit (`chore(audit): Phase 14.1 - verify Issue 2 on parent commit 4ab7c732`)*
|
||||
- *1 audit commit (`chore(audit): Phase 4.1 - 11/11 test tiers PASS clean`)*
|
||||
- *2 docs commits (sub-track 2 reports updated with Phase 14 addendum)*
|
||||
- *1 track artifact import commit (`conductor(track): import live_gui_test_fixes_20260618 artifacts`)*
|
||||
|
||||
*`blocks:` sub-track 2 of `result_migration_20260616` (full closure requires the 2 issues fixed).*
|
||||
|
||||
*Out of scope (deferred to follow-up track): the 4 `@pytest.mark.skip` markers for Gemini 503 pre-existing failures (`test_auto_aggregate_skip`, `test_view_mode_summary`, `test_view_mode_default_summary`, `test_view_mode_custom_empty_default_to_summary`). To remove them, mock the Gemini API in `summarize.summarise_file` for tests.*
|
||||
|
||||
#### Track: Test Sandbox Hardening (hard sandbox for tests; root-cause fix for test data loss) `[track-created: 2026-06-19]`
|
||||
*Link: [./tracks/test_sandbox_hardening_20260619/](./tracks/test_sandbox_hardening_20260619/), Spec: [./tracks/test_sandbox_hardening_20260619/spec.md](./tracks/test_sandbox_hardening_20260619/spec.md), Plan: [./tracks/test_sandbox_hardening_20260619/plan.md](./tracks/test_sandbox_hardening_20260619/plan.md), Metadata: [./tracks/test_sandbox_hardening_20260619/metadata.json](./tracks/test_sandbox_hardening_20260619/metadata.json)*
|
||||
|
||||
|
||||
Reference in New Issue
Block a user