<feed xmlns='http://www.w3.org/2005/Atom'>
<title>soryu/makima/src/daemon/cli, branch makima/task-task-fa404575-fa404575</title>
<subtitle>soryu-co/soryu mirror</subtitle>
<id>http://src.eirin.xyz/soryu/atom?h=makima%2Ftask-task-fa404575-fa404575</id>
<link rel='self' href='http://src.eirin.xyz/soryu/atom?h=makima%2Ftask-task-fa404575-fa404575'/>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/'/>
<updated>2026-01-26T20:19:30+00:00</updated>
<entry>
<title>Add completion phases</title>
<updated>2026-01-26T20:19:30+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-26T20:19:30+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=04e1e8f0dd85d19917ac5ba0b73cba65ebac8976'/>
<id>urn:sha1:04e1e8f0dd85d19917ac5ba0b73cba65ebac8976</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: Add client-side polling for CLI wait command (#23)</title>
<updated>2026-01-23T19:49:58+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-23T19:49:58+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=f6f0790217d4098ffb6d2b3df08b0cf83ff61727'/>
<id>urn:sha1:f6f0790217d4098ffb6d2b3df08b0cf83ff61727</id>
<content type='text'>
* [WIP] Heartbeat checkpoint - 2026-01-23 03:34:44 UTC

* feat: Add client-side polling for CLI wait command

When contracts wait for tasks in makima, the CLI now polls and returns
once the task has changed state. This provides resilient task status
detection even if:
- Server's broadcast channels miss a notification
- Network connections are intermittent
- Long-polling HTTP requests timeout at load balancers

The implementation uses a hybrid approach:
1. First tries server-side wait with short timeout (30s)
2. Falls back to polling via supervisor_get_task endpoint
3. Configurable poll_interval (default 5s) via --poll-interval flag

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 dependency checking on daemon startup (#19)</title>
<updated>2026-01-22T01:32:19+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-22T01:32:19+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=f7c08980d2a161a3739c71fddc5ca20871892365'/>
<id>urn:sha1:f7c08980d2a161a3739c71fddc5ca20871892365</id>
<content type='text'>
- Create setup module with check_dependencies() to verify Claude Code,
  git, and npm are installed
- Add colored status output showing version info for each dependency
- If Claude Code is missing and npm is available, offer to install it
- Show OS-specific installation instructions for missing dependencies
- Add --skip-setup-check flag to DaemonArgs for CI/CD environments
- Check runs as step [0/5] before configuration loading

Co-authored-by: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;</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>
</feed>
