diff --git a/.gitignore b/.gitignore index 6bf8f70..687ab3d 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ data/ __pycache__/ *.pyc .pytest_cache/ +*.egg-info/ diff --git a/CLAUDE.md b/CLAUDE.md index 2869b01..9a90f4a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -167,3 +167,13 @@ Deferred to Phase 2: second bot, group node, scene configurations, witness filte - **8-pin auto-cap eviction** is FIFO over the auto-pinned set only. Manual pins survive the eviction; this is by design (manual intent > auto-pin signal). - **Regenerate (T29) does not broadcast `turn_html` over SSE** — the page must refresh to show the regenerated turn. Acceptable for v1 single-tab usage; Phase 1.5 should wire the SSE event. - **First-run middleware** fires only on bare `/` and `/chats`. Sub-paths like `/chats/` and `/chats//drawer` pass through (correct: HTMX partials should not page-redirect, and a deep-link to a missing chat should 404, not redirect mid-setup). + +### Phase 1.5 cleanup backlog + +Small follow-ups identified during Phase 1 reviews. Pick up at any time; none are blocking. + +- **`open_db` refactor.** `chat/web/bots.py:get_conn()` duplicates the context-manager body to add `check_same_thread=False`. Extend `open_db(path, *, check_same_thread=True)` and have `get_conn` call it directly — eliminates the duplicated PRAGMA setup and ensures any future PRAGMA tweak only happens in one place. +- **Regenerate broadcasts `turn_html` over SSE.** Currently a refresh is needed (see T29 limitation above). Mirror the broadcast logic from `chat/web/turns.py:post_turn` after the new `assistant_turn` lands. +- **`bot_reset` purges orphaned "you" activity rows** (see limitation above). Either delete `activity` rows by chat-membership or accept the noise indefinitely; the projection-layer fix is one extra `DELETE FROM activity WHERE entity_id='you' AND container_id IN (SELECT id FROM containers WHERE chat_id IN (...))` clause inside `_apply_bot_reset`. +- **Drawer edits for the deferred v1 fields**: edge_trust slider, edge_summary textarea, memory pov_summary textarea, knowledge_facts add/remove. The `manual_edit` projector already supports `edge_trust` / `edge_summary` / `memory_pov_summary` target_kinds — only the routes are missing. Knowledge_facts needs a new dispatch branch. +- **NICE trim order in prompt assembly** drops previous-scene first instead of last (T18 review). Greedy-cuts heuristic vs spec listing order; revisit if v1 play surfaces a real regression. diff --git a/pyproject.toml b/pyproject.toml index b72bc90..de06982 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,13 @@ dependencies = [ [project.optional-dependencies] dev = ["pytest>=8", "pytest-asyncio>=0.23", "freezegun>=1.4"] +[build-system] +requires = ["setuptools>=61"] +build-backend = "setuptools.build_meta" + +[tool.setuptools.packages.find] +include = ["chat*"] + [tool.pytest.ini_options] pythonpath = ["."] asyncio_mode = "auto"