Releases: chrisguidry/docketeer
0.0.17 - Stop slackin'
What's Changed
- feat: add first-party Slack chat backend by @parkedwards in #18
- feat: stream Slack replies natively by @parkedwards in #19
- chore: add discover_explicit for vault plugin by @parkedwards in #20
- fix(slack): include recipient user in reply streams by @parkedwards in #21
New Contributors
- @parkedwards made their first contribution in #18
Full Changelog: 0.0.16...0.0.17
0.0.16 - Know thyself
The big one here is the autonomy extraction: docketeer's core is now a plain agent framework, and all the personality/inner-life stuff lives in docketeer-autonomy. You can build a boring chatbot without accidentally giving it an existential crisis.
Also in this release:
- docketeer-subprocess β a new executor for when you don't have bubblewrap (containers, macOS, etc.). Set
DOCKETEER_EXECUTOR=subprocess. (#16) - Search gets a catalog β
SearchCatalogwith named indices replaces the single shared index. MCP tool search is now semantic and works even for disconnected servers. - Room context β
rooms/{name}.mdfiles auto-load into conversations, same as the people/ pattern already did. - Tasks get their own rooms β scheduled tasks no longer share one conversation, so reverie isn't reading your nudge history and vice versa.
- edit_file tool β search-and-replace file editing, finally.
- Backend env vars are namespaced β
DOCKETEER_ANTHROPIC_MODEL_SMART,DOCKETEER_DEEPINFRA_MODEL_SMART, etc., so they stop stepping on each other. - Conversation digest in reverie β the agent actually knows what happened in your chats now before it goes off to think.
- Bunch of MCP fixes: string arguments,
McpErrorhandling, vault-backed secrets. - Fixed the inference backend blowing up when the executor was
None. - Audit logs flush immediately, env schemas handle union types, bubblewrap gets a default
PATH. - Doc sync tests so READMEs can't drift from reality again.
Full Changelog: 0.0.15...0.0.16
0.0.15 - Searching for meaning
Semantic search via the docketeer.search plugin system with a local search index implemented with fastembed and numpy
Full Changelog: 0.0.14...0.0.15
0.0.14 - Thirteen was unlucky anyways
Full Changelog: 0.0.13...0.0.14
0.0.13 - A token's a token
Full Changelog: 0.0.12...0.0.13
0.0.12: This Is Your Brain On Claude
DOCKETEER_INFERENCE=claude-code will use claude as the underlying inference interface, but still with access to all your workspace tools and still sandboxed!
Full Changelog: 0.0.11...0.0.12
0.0.11 - Coming out of its shell
What's Changed
- Add
docketeer-tuiterminal chat backend by @zzstoatzz in #7
New Contributors
- @zzstoatzz made their first contribution in #7
Full Changelog: 0.0.10...0.0.11
0.0.10
New Vault abstraction for secrets management, with an initial 1password plugin. This allows agents to safely reference secrets without them passing through conversation context π€
Full Changelog: 0.0.9...0.0.10
0.0.9 - Sharpest tool in the shed (for real this time)
Re-release of 0.0.8 β docketeer-mcp was missing from the publish workflow so it never made it to PyPI. Now it will.
See 0.0.8 for the full changelog.
0.0.8 - Sharpest tool in the shed
MCP (Model Context Protocol) support lands β the agent can now talk to external tool servers over stdio and HTTP. Configure servers, browse their tool catalogs, and dispatch calls, all from the sandbox. Built on FastMCP, which makes the client-side wiring painless.
The toolshed is the piece that makes it work: the bubblewrap executor now discovers node and python installations at startup (nvm, uv/uvx) and mounts them read-only so both the agent's run/shell tools and MCP server launches share the same runtimes.
Other changes:
- API errors no longer crash the agent β 413s trigger compaction and retry, transient failures get an apology, auth errors propagate cleanly
- Sandbox hardened: the toolshed's install root heuristic no longer mounts all of
~/.localwhen it only needs~/.local/bin - Full tool docstrings now make it to the API instead of getting truncated at the first line
- History loading consolidated onto a single
RoomMessage/fetch_messagesinterface brain.pysplit into a package along natural seams