Merged from feature/interrupt-on-type branch. Backend cancellation infrastructure: - Added tokio watch channel to SessionState for cancellation signaling - Implemented cancel_chat command - Modified chat command to use tokio::select! for racing requests vs cancellation - When cancelled, HTTP request to Ollama is dropped and returns early - Added tokio dependency with sync feature Story updates: - Story 13: Updated to use Stop button pattern (industry standard) - Story 18: Created placeholder for streaming responses - Stories 15-17: Placeholders for future features Frontend changes: - Removed auto-interrupt on typing behavior (too confusing) - Backend infrastructure ready for Stop button implementation Note: Story 13 UI (Stop button) not yet implemented - backend ready
Project Specs
This folder contains the "Living Specification" for the project. It serves as the source of truth for all AI sessions.
Structure
- 00_CONTEXT.md: The high-level overview, goals, domain definition, and glossary. Start here.
- tech/: Implementation details, including the Tech Stack, Architecture, and Constraints.
- STACK.md: The technical "Constitution" (Languages, Libraries, Patterns).
- functional/: Domain logic and behavior descriptions, platform-agnostic.
- 01_CORE.md: Core functional specifications.
Usage for LLMs
- Always read 00_CONTEXT.md and tech/STACK.md at the beginning of a session.
- Before writing code, ensure the spec in this folder reflects the desired reality.
- If a Story changes behavior, update the spec first, get approval, then write code.