Story 191: Matrix bot should only respond when directly addressed.
The bot now checks if it was mentioned by name or replied to before
responding, preventing it from answering every message in a room.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add HTML formatted_body to Matrix bot messages so that markdown-style
formatting (code blocks, bold, italic, lists) renders properly in Matrix
clients. Uses the pulldown-cmark crate to convert markdown to HTML and
sets the message format to org.matrix.custom.html.
Story: 188_story_render_matrix_bot_messages_with_html_formatting
Instead of waiting for the full LLM response and sending it as a single
message, stream bot responses to Matrix as they are generated. Paragraphs
are delimited by double-newline boundaries, giving users incremental
feedback while the model is still thinking.
Story: 184_story_stream_bot_responses_to_matrix_on_double_newline_boundaries
Add Done column to pipeline board. Adds the 'done' stage to
PipelineState, exposes it via the WebSocket and REST API, and
renders a Done column in the frontend pipeline board view.
Squash merge from feature/story-166_story_add_done_column_to_pipeline_board.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Make start_agent non-blocking by deferring worktree creation. The agent
spawn now returns immediately while worktree setup happens asynchronously,
improving responsiveness of the start_agent MCP call.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When Ollama is not running, /api/ollama/models now returns [] instead of
HTTP 400. This prevents the UI from breaking when the Ollama service is
unavailable. The frontend already handles an empty list gracefully.
Updated the test to assert success with an empty list rather than an error.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add missing closing brace for spawn_watchdog function
- Remove leftover <<<<<<< HEAD conflict marker in test module
- Restore conflict marker test data that was incorrectly stripped
- Add missing completed_at field in inject_test_agent_with_handle
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove leftover conflict markers and add missing closing brace for
watchdog_detects_orphaned_running_agent test function.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The revert of story 86's merge left broken code from stories 131/135
that depended on it. Removed dead inline event dispatch (referencing
undefined event_type, pty_writer, PermissionReqMsg), added activity_tx
to process_json_event, and removed unused permission_tx parameter from
chat_stream/chat (permissions go through MCP, not PTY).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Old process_json_event call and new handle_stream_event match block were
both kept during auto-resolution; remove the old code to fix unclosed delimiter.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add missing closing brace and #[test] attr between test functions in claude_code.rs
- Remove premature semicolon in TypeScript union type in client.ts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>