ducoterra
a49be80b8e
Build and Push Containers / build-and-push-app (push) Successful in 1m34s
Build and Push Containers / build-and-push-db (push) Successful in 10s
phase: 96_oneshot_resilience
All checks complete. Final report:
**Phase 96 (one-shot resilience) — final verification pass, all green** (all 4 task files already in `complete/`; verified the working-tree implementation against the design)
- `LLMClient.chat()` empty-content retry (D1–D3) via `_chat_once` + `_EmptyContentError` (carries `finish_reason`), under `BOR_LLM_RETRIES`/`BOR_LLM_RETRY_DELAY` — verified in diff
- `missing_folder_summaries()` + `generate_folder_summaries(only_missing=…)` — verified; `folder_summary_table_empty` deleted, both sync gates switched to the gap probe
- `.env.example` comments updated (chat-turn stream + one-shot summary calls)
**Test / lint / coverage results**
- `uv run pytest --cov=app --cov-report=term-missing` → **1988 passed**, coverage **99%** (gate >90%)
- `uv run pytest tests/e2e/test_oneshot_llm_retry.py -v --no-cov` → **2 passed** (isolated)
- Regressions, each isolated: `test_ls_tree_drilldown` 3 passed, `test_sync_button` 3 passed, `test_local_directory_sources` 3 passed, `test_llm_retry` 4 passed
- `uv run ruff check . && uv run pyright` → clean (0 errors)
**Completion criteria:** retry-then-recover unit-pinned ✓ · exhaustion + `BOR_LLM_RETRIES=0` byte-identical ✓ · streaming path untouched ✓ · gap-fill both sync paths, other rows byte-identical incl. `updated_at` ✓ · no-gap zero-burn ✓ · phase E2E green ✓ · regression E2Es green ✓ · full suite + >90% + lint/types ✓ · no completed-phase behavior change (full suite green) ✓. Commit left to the harness per executor rules (working tree, 16 files).
**Deviations:** none. **Next pending phase:** `97_kb_tree_catalog`.
2026-09-11 13:16:20 -04:00
..
2026-08-21 13:42:21 -04:00
2026-09-07 12:39:01 -04:00
2026-09-09 17:22:24 -04:00
2026-09-11 13:16:20 -04:00
2026-09-01 23:51:43 -04:00
2026-09-07 12:39:01 -04:00
2026-09-10 16:43:08 -04:00
2026-09-11 00:59:35 -04:00
2026-09-11 00:59:35 -04:00
2026-09-07 12:39:01 -04:00
2026-09-09 14:08:18 -04:00
2026-08-31 01:35:28 -04:00
2026-09-07 12:39:01 -04:00
2026-09-11 00:59:35 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-08-31 05:20:25 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-08 00:33:21 -04:00
2026-09-09 17:22:24 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-11 00:59:35 -04:00
2026-09-07 12:39:01 -04:00
2026-09-08 09:37:33 -04:00
2026-09-06 06:31:31 -04:00
2026-09-10 16:43:08 -04:00
2026-09-07 12:39:01 -04:00
2026-09-06 06:31:31 -04:00
2026-08-31 22:42:41 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-11 00:59:35 -04:00
2026-09-07 12:39:01 -04:00
2026-09-08 16:02:45 -04:00
2026-09-08 01:56:37 -04:00
2026-09-07 12:39:01 -04:00
2026-09-10 16:43:08 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-11 13:16:20 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-11 03:42:51 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 23:54:41 -04:00
2026-08-31 05:20:25 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-09 01:45:42 -04:00
2026-09-09 14:08:18 -04:00
2026-09-07 12:39:01 -04:00
2026-08-31 05:20:25 -04:00
2026-09-10 16:43:08 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-09 14:08:18 -04:00
2026-09-10 16:43:08 -04:00
2026-09-10 16:43:08 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00
2026-09-11 00:59:35 -04:00
2026-09-07 12:39:01 -04:00
2026-09-05 10:57:07 -04:00
2026-09-05 10:57:07 -04:00
2026-09-09 17:22:24 -04:00
2026-09-09 14:08:18 -04:00
2026-09-07 12:39:01 -04:00
2026-09-07 12:39:01 -04:00