<feed xmlns='http://www.w3.org/2005/Atom'>
<title>soryu/makima/src/daemon/cli, branch makima/task-task-5c27b152-5c27b152</title>
<subtitle>soryu-co/soryu mirror</subtitle>
<id>http://src.eirin.xyz/soryu/atom?h=makima%2Ftask-task-5c27b152-5c27b152</id>
<link rel='self' href='http://src.eirin.xyz/soryu/atom?h=makima%2Ftask-task-5c27b152-5c27b152'/>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/'/>
<updated>2026-01-23T03:34:44+00:00</updated>
<entry>
<title>[WIP] Heartbeat checkpoint - 2026-01-23 03:34:44 UTC</title>
<updated>2026-01-23T03:34:44+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-23T03:34:44+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=3230c8b729101ce227e10efcb181fafe83fc8d0a'/>
<id>urn:sha1:3230c8b729101ce227e10efcb181fafe83fc8d0a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add non-blocking persistent contract completion questions (#14)</title>
<updated>2026-01-20T23:20:32+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-20T23:20:32+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=7155e6cd7ddf25a5a4d4f6d6abecd49f0cf519dc'/>
<id>urn:sha1:7155e6cd7ddf25a5a4d4f6d6abecd49f0cf519dc</id>
<content type='text'>
* [WIP] Heartbeat checkpoint - 2026-01-20 22:40:37 UTC

* Task completion checkpoint</content>
</entry>
<entry>
<title>Update CLI to show log history as well</title>
<updated>2026-01-20T17:23:46+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-20T17:23:34+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=055e2c4a72e3b2331a18fdc9f8132ef990af7e38'/>
<id>urn:sha1:055e2c4a72e3b2331a18fdc9f8132ef990af7e38</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Clean contract lifecycle: Add supervisor complete command (#13)</title>
<updated>2026-01-20T17:19:18+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-20T17:19:18+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=54c6d409e1d5667f4ab7f63a43e1459e68575c94'/>
<id>urn:sha1:54c6d409e1d5667f4ab7f63a43e1459e68575c94</id>
<content type='text'>
* feat: Add contract lifecycle management commands (complete and resume-contract)

Add supervisor commands for properly managing contract lifecycle:
- `makima supervisor complete` - Mark a contract as complete and stop the supervisor
- `makima supervisor resume-contract` - Resume a completed contract (reactivate it)

Also adds `api_key` field to TaskConfig for authenticated API calls.

This consolidates the lifecycle management features from the contract-lifecycle-cleanup branch.

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;

* Fix: prevent supervisor auto-start for completed contracts

When viewing a completed contract, the supervisor was auto-starting
on component mount. This would resurrect completed contracts and
cause them to continue running.

Changes:
- Add contract.status !== 'completed' check to the auto-start condition
- Add contract.status to the useEffect dependency array

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;

* Task completion checkpoint

---------

Co-authored-by: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;</content>
</entry>
<entry>
<title>Fix: auth for CLI and CLI SIGTERM</title>
<updated>2026-01-20T00:23:49+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-20T00:23:49+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=5d8e3f80254f20eb6672701fad5f116a3b05dbc3'/>
<id>urn:sha1:5d8e3f80254f20eb6672701fad5f116a3b05dbc3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add interactive TUI browser for tasks, contracts, and files (makima view) (#7)</title>
<updated>2026-01-19T13:47:32+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-19T13:47:32+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=0833fb1f30c0c3b920157deb882e0e902c3af02a'/>
<id>urn:sha1:0833fb1f30c0c3b920157deb882e0e902c3af02a</id>
<content type='text'>
* feat(tui): Implement fuzzy search with real-time filtering and highlighting

Adds comprehensive fuzzy search functionality to the TUI browser:

## Fuzzy Matching (fuzzy.rs)
- FuzzyMatcher wrapper using SkimMatcherV2 from fuzzy-matcher crate
- fuzzy_match() returns score and matched character indices
- fuzzy_match_all() supports multi-term search (space-separated)
- Recency-aware scoring to boost recent items in results
- Unit tests for all matching scenarios

## App State (app.rs)
- FilteredItem struct with index, score, and matched_indices
- apply_filter() uses fuzzy matching with score-based sorting
- match_count() and has_no_matches() helper methods
- Results sorted by match score (highest first)

## List View (list_view.rs)
- Highlighted matched characters in search results
- Yellow bold styling for matched chars
- Status icons with color coding

## Search Input (search_input.rs)
- Real-time match count display (X/Y matches)
- Visual feedback for no matches (red border)
- Placeholder text when search is empty
- Active search mode indication (yellow border)

## Event Handling (event.rs)
- Arrow key navigation while in search mode
- Ctrl+K/J for vim-style navigation during search
- Delete key support alongside backspace
- Ctrl+U to clear search query
- Tab toggles preview while searching
- Escape clears search and exits search mode

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;

* Task completion checkpoint

* [WIP] Heartbeat checkpoint - 2026-01-19 11:20:34 UTC

* Task completion checkpoint

* [WIP] Heartbeat checkpoint - 2026-01-19 11:31:19 UTC

* Task completion checkpoint

* [WIP] Heartbeat checkpoint - 2026-01-19 11:39:07 UTC

* fix(tui): Fix module exports and main binary integration

- Update mod.rs to properly export app, event, fuzzy, and ui modules
- Add run() function for TUI entry point
- Fix run_view() to use ViewCommand enum instead of ViewArgs
- Fix event handling to use poll_event and handle_key_event

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;

---------

Co-authored-by: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;</content>
</entry>
<entry>
<title>Add pushed heartbeats and multi-question select</title>
<updated>2026-01-18T18:55:04+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-18T18:55:04+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=9dbc2c3199047609a9f8496fec07ecdb10aee73d'/>
<id>urn:sha1:9dbc2c3199047609a9f8496fec07ecdb10aee73d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add phaseguard flag for supervisor questions to wait indefinitely (#4)</title>
<updated>2026-01-18T17:44:18+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-18T17:44:18+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=219bca168508e1ea5e91e8a9ce98338afeddfbd2'/>
<id>urn:sha1:219bca168508e1ea5e91e8a9ce98338afeddfbd2</id>
<content type='text'>
* Add phaseguard flag to supervisor ask command

When phaseguard is enabled (--phaseguard flag), the supervisor's ask
command will block indefinitely waiting for user response instead of
timing out after the default 1 hour. This ensures that phase transitions
requiring user confirmation cannot proceed without explicit approval.

Changes:
- Add phaseguard field to AskQuestionRequest in server handler
- Add phaseguard field to AskQuestionRequest in API client
- Add --phaseguard CLI flag to AskArgs
- Update supervisor_ask() to accept phaseguard parameter
- Modify ask_question handler to skip timeout check when phaseguard=true

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;

* Task completion checkpoint

---------

Co-authored-by: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;</content>
</entry>
<entry>
<title>Fixup: use default api.makima.jp URL and fix default branch detection</title>
<updated>2026-01-16T12:23:49+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-16T12:23:49+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=205ab8a223ddf6591a3e8bfc9108506502977c11'/>
<id>urn:sha1:205ab8a223ddf6591a3e8bfc9108506502977c11</id>
<content type='text'>
Also add checkpointing/history
</content>
</entry>
<entry>
<title>Add resume and history system for makima (#1)</title>
<updated>2026-01-15T22:33:47+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-15T22:33:47+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=6ee2e75834bff187b8c262e0798ef365bc21cd59'/>
<id>urn:sha1:6ee2e75834bff187b8c262e0798ef365bc21cd59</id>
<content type='text'>
This PR implements a comprehensive resume and history system that enables:

1. **History Viewing**
   - View complete conversation history for contracts across all phases
   - View conversation history for individual tasks
   - View task output/tool call history with timestamps
   - View checkpoint history
   - Timeline view showing all activities

2. **Resume System**
   - Resume interrupted supervisor conversations with full context
   - Resume interrupted task conversations
   - Resume from specific checkpoints
   - Continue tasks from previous task state (worktree inheritance)

3. **Rewind/Restore Features**
   - Rewind code to any checkpoint (git restore)
   - Rewind conversation to any point
   - Create new branches from historical points
   - Fork tasks from any point in history

- New migration: 20250117000000_history_tables.sql
  - conversation_snapshots table for storing conversation state
  - history_events table for unified timeline
  - Added forking fields to tasks table
  - Added conversation_snapshot_id to task_checkpoints

- ConversationSnapshot, HistoryEvent, ConversationMessage
- Request/response types for resume and rewind operations
- Query filter types for history endpoints

- CRUD functions for conversation_snapshots
- CRUD functions for history_events
- Task conversation retrieval from task_events

- GET /api/v1/contracts/{id}/history
- GET /api/v1/contracts/{id}/supervisor/conversation
- GET /api/v1/mesh/tasks/{id}/conversation
- GET /api/v1/timeline
- POST /api/v1/contracts/{id}/supervisor/resume
- POST /api/v1/mesh/tasks/{id}/rewind
- POST /api/v1/mesh/tasks/{id}/fork
- POST /api/v1/mesh/tasks/{id}/checkpoints/{cid}/resume
- POST /api/v1/mesh/tasks/{id}/checkpoints/{cid}/branch
- POST /api/v1/contracts/{id}/supervisor/conversation/rewind

- task-history: View task conversation history
- task-checkpoints: List task checkpoints
- resume: Resume supervisor after interruption
- task-resume-from: Resume task from checkpoint
- task-rewind: Rewind task code to checkpoint
- task-fork: Fork task from historical point
- rewind-conversation: Rewind supervisor conversation</content>
</entry>
</feed>
