You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fixed
alembic upgrade head failed in every PostgreSQL project without --mcp-client — since 0.2.19, migration 0027 named 0026_create_mcp_connections as its parent, and that migration is generated
only with the MCP client, so Alembic stopped with KeyError: '0026_create_mcp_connections'. 0027 now follows 0025 when 0026 is
absent. Nobody noticed because tests/test_migrations.py took any alembic current failure for "no database" and skipped itself; it now checks the
connection directly, so a broken chain fails it. A new matrix check, test_alembic_chain_is_unbroken, verifies every generated configuration has
one head and no missing parent
Migrations could not start in projects without an AI framework — alembic/env.py imported the conversation models, which are generated only
with one
The test suite of a project without an AI framework failed at collection
— tests/test_services_conversation.py stayed behind after its module was
removed
Resetting all non-admin users left their agent memory behind — with --memory, UserService.delete_non_admins (used by the seed command's reset)
bulk-deleted the rows but not the notebooks, which have no foreign key to users; single deletion already cleared them. It now forgets each deleted
user's memory, and a store failure rolls the deletion back
Deep research could drop an answer given alongside a planning step — text
sent with a planning or delegation tool call is held back as narration; if a
run nevertheless ended on that step, the text never streamed although it was
the final result. It is now sent before final_result. Current Pydantic AI
continues a run after such a step, so this guards a path rather than fixing
one seen in practice (#176)
A conversation resumed on a new connection lost its context — the chat
session held the conversation in memory only while the WebSocket lasted, so
after a reconnect the model started from nothing, and switching to another
conversation in the same session carried the previous one's context over.
The Pydantic AI and PydanticDeep sessions now load the conversation's most
recent stored messages (up to 100) whenever they switch to a conversation
they do not hold