Chat Modernization Implementation Notes

Overview

The interactive chat now runs through a LangChain graph-backed pipeline with a refreshed CLI experience. Key changes:

  • storycraftr/cmd/chat.py drives the session using a renderer, session manager, and colon commands (:help, :status, :session ...).
  • storycraftr/chat/ contains reusable UI/service modules (render, session, commands).
  • Retrieval transparency is provided by listing the sources of the chunks referenced in each turn.
  • Conversations autosave and can be restored via named sessions.
  • Non-interactive runs (--prompt) reuse the same rendering primitives for consistent formatting.

Next Steps

  • Extend the renderer with streaming output states once streaming is enabled at the LLM layer.
  • Add automated snapshot tests for the renderer under multiple terminal widths.
  • Layer additional colon commands (:rerank on/off, dataset selection) as the retrieval controls maturate.