jmooves makes Mike chat history remember the whole conversation

A small database fix stops reopened chats from showing the answer but losing the question.

workflowinfrastructure

jmooves has closed a frustrating reliability gap in self-hosted Mike: a chat could look complete during a live exchange, then lose the user's prompt as soon as it was reopened.

The problem was a mismatch between chat storage and the information sent alongside a user's message. Mike continued to save the assistant's reply, quietly creating one-sided records that stripped threads of their original instruction and workflow context. The change updates both new and existing installations so those details are stored consistently.

So what Legal teams testing Mike for repeatable, reviewable workflows should care because a chat record is not much of an audit trail if it preserves only the answer.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from jmooves/mike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
cfdcda6d fix(db): add missing chat_messages.workflow column JJ 2026-07-16 ↗ GitHub
commit body
User messages are persisted with a `workflow` field
(backend/src/routes/chat.ts, projectChat.ts) and it is read back when
rendering chat history (ChatView -> UserMessage) to show which workflow a
message was sent under. But the column is never created by schema.sql or any
migration, so every user-message insert fails with PostgREST PGRST204
("Could not find the 'workflow' column of 'chat_messages'") and is dropped
silently (the insert result is not checked). The assistant insert has no
workflow column, so it succeeds - the net effect on a self-hosted install is
that reloading a thread shows the assistant reply but not the user's prompt.

Add the `workflow jsonb` column to schema.sql (fresh installs) and a
migration (existing installs), mirroring the adjacent content/files jsonb
columns.

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-1348.md from inside the repo you want the changes in.

⬇ Download capture-thread-1348.md