<feed xmlns='http://www.w3.org/2005/Atom'>
<title>soryu/makima/src/daemon/cli, branch makima/red-team-cli-and-frontend</title>
<subtitle>soryu-co/soryu mirror</subtitle>
<id>http://src.eirin.xyz/soryu/atom?h=makima%2Fred-team-cli-and-frontend</id>
<link rel='self' href='http://src.eirin.xyz/soryu/atom?h=makima%2Fred-team-cli-and-frontend'/>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/'/>
<updated>2026-01-27T03:04:03+00:00</updated>
<entry>
<title>Add Red Team CLI command and frontend UI</title>
<updated>2026-01-27T03:04:03+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-27T03:02:19+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=f725134771347a4d08224bafdbf41a0c1e370968'/>
<id>urn:sha1:f725134771347a4d08224bafdbf41a0c1e370968</id>
<content type='text'>
Backend additions:
- Add `makima red-team notify` CLI command for red team tasks
- Add RedTeamCommand enum with Notify subcommand
- Add red_team API client module for notify endpoint
- Add RedTeamNotifyArgs with severity, task, file, context options

Frontend additions:
- Add ContractCreateModal with red team toggle and prompt input
- Update ContractDetail with red-team tab for notifications
- Update ContractList with red team enabled badge
- Add TypeScript types for RedTeamNotification and related interfaces

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Default to shared worktree and add worktree endpoint</title>
<updated>2026-01-27T01:25:40+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-27T01:25:29+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=b0d0b4848b2fc8a44c2575e09a08b34aaf6e1484'/>
<id>urn:sha1:b0d0b4848b2fc8a44c2575e09a08b34aaf6e1484</id>
<content type='text'>
</content>
</entry>
<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>
</feed>
