diff --git a/.coverage b/.coverage deleted file mode 100644 index c00c1cf..0000000 Binary files a/.coverage and /dev/null differ diff --git a/.gitignore b/.gitignore index f4c5502..07e37a4 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ build/ uv.lock .claude/ .coverage +.coverage.* coverage.xml htmlcov/ AGENTS.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f9046b..c5ba4d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ Sync wave from `chat@4.31.0` to `chat@4.41.1` (tracking #184). `UPSTREAM_PARITY` stays `4.31.0` until #203. +- **Tooling: stop tracking the `.coverage` data file** (#304). Tooling only; no consumer-visible behavior change. `.coverage` (the coverage.py SQLite file) was committed, so every `pytest --cov` run showed it as modified. It is now untracked, and `.gitignore` also ignores `.coverage.*` (parallel-mode data files). CI's `pytest --cov` writes a fresh file and never read the committed one; there is no `[tool.coverage]` config. - **Slack Agent Sessions lifecycle and native stop** (#215; Slack half of vercel/chat `2ce2be00` #862, chat@4.39.0, plus `8b6d7f3a` #882 and `2cc8cc3f` #897, chat@4.40.0). Only with `agent_view=True`; without it nothing changes (no `agents.sessions.*` call, byte-identical stream stop payloads). A live check in an `agent_view` workspace is still pending. - **Consumer-visible (agent_view typing):** `start_typing()` without a status (and `thread.start_typing()`) now moves the agent session to `processing` through `agents.sessions.setStatus` (with `initiator_user_id`) instead of calling `assistant.threads.setStatus` with "Typing..."; `start_typing(thread_id, "")` moves it to `active`. A custom status still goes through `assistant.threads.setStatus`. A failed `agents.sessions.setStatus` is logged, with no legacy fallback. The adapter now has `end_typing`, so a reply posted after `thread.start_typing()` (a post, or a post+edit stream) moves the session back to `active` (or the `StreamingPlanOptions.session_status`). - **Consumer-visible (agent_view status and titles):** `set_assistant_status(channel, ts, "")` (or whitespace) sets the session `active` instead of sending an empty status; a custom status without `loading_messages` (explicit or configured) now sends `loading_messages=[status]`. `set_assistant_title` calls `agents.sessions.rename` instead of `assistant.threads.setTitle`.