Standardize on the .agents/ directory (shared with project skills): phases/, user_stories/, reports/, screenshots/, validate.sh, and phase-sessions/ + pipeline.log all move to .agents/ (git mv preserves history; runtime artifacts move alongside). Updates every reference in AGENTS.md, README.md, .gitignore, app docstrings, and test story headers. Historical KB content in data/ and the runtime pipeline.log transcript are left untouched.
1.5 KiB
1.5 KiB
All done — the pgrep hits were my own shell. Final state verified: 672 docs / 8969 chunks in the DB, clean tree, commit 99c48cb.
Phase 02 (import documents) — complete
- Code: fence-aware chunker (1200-char hard cap, atomic fences, overlap+anchor);
LLMClientreusing the openai client's httpx transport — openai SDK 1.x/2.x both injectencoding_format, which aipi's LiteLLMopenai_likerejects (flagged deviation from A5's plain-SDK intent); token-budget batching + halving retry for aipi's ~1024-token per-request cap; two-phase per-file upsert (sha256 delta, atomic commit, A9 walk, prune, per-file error tolerance, adaptive re-chunk at half target for URL-dense files);scripts/import_docsCLI;GET /api/docs; Sources page wired to real endpoint (XSS-safe DOM rows). - Real run:
files=672 added=672 unchanged=0 pruned=0 errors=0 chunks=8969 embed_batches=2188in ~3m; idempotent re-run: 672 unchanged, 0 batches. One file (URL-dense README) re-chunked at 1000 chars via the adaptive path. - Gates: 63 unit/integration passed, story E2E 3/3, ruff + pyright clean, coverage 98% (>90%),
.agents/validate.sh→ "validation OK". - UI: 1280px + 375px screenshots at
/tmp/bor_screenshots/(full-width a11y table, stat cards, mono paths, designed empty state; no CDN). - Fixes: phase-01 harness defect (validate.sh used system python3) → now uv-gated, committed with
-f. - Commit:
99c48cb feat(rag): index markdown KB — chunker, embed client, delta importer, Sources page.