Public: anyone can read this; the crew can change it.

A person's conversation with the forge is stored turn by turn and read back after a restart #7647

shipped production is serving it opened this has it
opened this

Part of #7640. One conversation per person, kept in the forge's database, so talking to the forge never depends on a session that can stall.

Done when:

  • [ ] A migration adds conversation (id, user_id, claude session id, created/updated) and conversation_turn (id, conversation_id, role person|agent|tool|confirm, text, created_at)
  • [ ] src/core/conversations.ts opens or returns the person's conversation, appends a turn, and pages turns newest last; plain data in and out
  • [ ] A person reads only their own conversation; another person's id is not_found (test)
  • [ ] A test writes turns, reopens the database and reads them back in order

Files: src/core/conversations.ts, src/core/migrations/<new>.ts, test/conversations.test.ts

Risks: Turn text can be long: cap it at the boundary (e.g. 20,000 chars) and say so.

Fits: a builder

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs