ducoterra
d4943b4822
Build and Push Containers / build-and-push-app (push) Successful in 1m45s
Build and Push Containers / build-and-push-db (push) Successful in 25s
phase: 94_ls_tree_drilldown
All green. Verification complete.
**Phase 94 — `ls` drill-down tree: final verification pass (all 5 tasks were already complete; verified, nothing to fix)**
- Verified `ls` 3-level tree (`app/rag/agent.py`): `ls()` sources + summaries, `ls(source)`/`ls(source/folder)` drill-down, 50-line file cap + grep-pointer note, NOT-A-FOLDER teaching refusal
- Verified `folder_summaries` (migration 0017, model, `app/rag/folder_summaries.py` generator: `FOLDER_SUMMARY_MODE` marker, fail-soft per folder, ≥2-doc scope + prune) wired change-gated in both sync paths
- Verified 10-turn fixture battery verdict recorded in `TOOL_CALLING_TESTING.md` §9 (2026-09-11): turbo PASS 19/19 contract, 98.7 s (−12.5…−13.2 % vs baseline); lite PASS 18/18, 43.6 s (+7.7 %) — accuracy at/above baseline, gate met
- `uv run pytest --cov=app --cov-report=term-missing` → 1939 passed, 0 failed; TOTAL coverage **99 %** (folder_summaries.py 100 %)
- `uv run ruff check .` → clean; `uv run pyright` → 0 errors, 0 warnings
- E2E in isolation: `test_ls_tree_drilldown.py` 3 passed; `test_agent_document_tools` 4, `test_agent_unlimited_tools` 4, `test_harness_aligned_tools` 3, `test_search_tool` 3, `test_grep_regex_teaching` 2, `test_response_to_docs` 4 — all passed (read/grep contracts untouched)
- Dedicated folder-summary tests (fail-soft, prune, both sync paths, migration): 46 passed
- Completion criteria: all 6 met; working tree holds only phase-94 changes (commit left to harness per protocol)
**Next pending phase:** `95_read_truncation_cap`
2026-09-11 00:59:35 -04:00
..
2026-09-07 23:54:41 -04:00
2026-09-11 00:59:35 -04:00
2026-09-07 12:39:01 -04:00
2026-08-28 15:57:59 -04:00
2026-09-07 12:39:01 -04:00
2026-09-10 00:23:08 -04:00
2026-09-08 10:03:10 -04:00
2026-09-10 00:23:08 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-10 00:23:08 -04:00
2026-08-28 07:02:24 -04:00
2026-09-09 17:22:24 -04:00
2026-08-21 13:42:21 -04:00
2026-08-21 13:42:21 -04:00
2026-09-01 03:52:03 -04:00
2026-09-01 03:52:03 -04:00
2026-09-07 12:39:01 -04:00
2026-09-08 01:11:45 -04:00
2026-09-11 00:59:35 -04:00
2026-09-09 17:22:24 -04:00
2026-09-10 00:23:08 -04:00
2026-09-08 09:37:33 -04:00
2026-09-10 16:43:08 -04:00
2026-08-29 18:32:15 -04:00
2026-09-09 14:08:18 -04:00
2026-09-03 11:17:47 -04:00
2026-09-08 01:56:37 -04:00
2026-08-27 01:04:16 -04:00
2026-09-01 03:52:03 -04:00
2026-09-08 22:31:45 -04:00
2026-09-08 22:31:45 -04:00
2026-09-06 06:31:31 -04:00
2026-09-06 06:31:31 -04:00
2026-09-05 16:04:40 -04:00
2026-09-09 01:45:42 -04:00
2026-09-09 01:45:42 -04:00
2026-09-08 01:11:45 -04:00
2026-08-26 22:39:14 -04:00
2026-09-03 11:17:47 -04:00
2026-08-25 22:42:10 -04:00
2026-08-28 03:35:50 -04:00
2026-09-08 22:31:45 -04:00
2026-09-11 00:59:35 -04:00
2026-09-10 16:43:08 -04:00
2026-08-25 20:22:51 -04:00
2026-09-10 16:43:08 -04:00
2026-09-02 01:08:18 -04:00
2026-09-11 00:59:35 -04:00
2026-09-07 23:08:46 -04:00
2026-09-06 06:31:31 -04:00
2026-09-05 10:26:39 -04:00
2026-09-09 17:22:24 -04:00
2026-09-10 00:23:08 -04:00
2026-09-03 13:39:15 -04:00
2026-09-08 00:33:21 -04:00
2026-09-09 17:22:24 -04:00
2026-09-08 22:31:45 -04:00
2026-09-08 22:31:45 -04:00
2026-09-09 01:45:42 -04:00
2026-09-02 15:55:33 -04:00
2026-08-30 23:39:15 -04:00
2026-08-29 18:32:15 -04:00
2026-09-03 11:17:47 -04:00
2026-09-06 06:31:31 -04:00
2026-08-22 16:44:42 -04:00
2026-09-06 06:31:31 -04:00
2026-08-25 13:46:32 -04:00
2026-09-01 04:20:26 -04:00
2026-08-25 17:48:37 -04:00
2026-08-31 23:52:22 -04:00
2026-09-11 00:59:35 -04:00
2026-08-27 23:44:35 -04:00
2026-09-08 02:38:45 -04:00
2026-09-10 16:43:08 -04:00
2026-09-10 16:43:08 -04:00
2026-08-28 17:10:02 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-10 16:43:08 -04:00
2026-09-09 17:22:24 -04:00