<feed xmlns='http://www.w3.org/2005/Atom'>
<title>soryu/makima/src/server/mod.rs, branch makima/task-task-e6b5334f-e6b5334f</title>
<subtitle>soryu-co/soryu mirror</subtitle>
<id>http://src.eirin.xyz/soryu/atom?h=makima%2Ftask-task-e6b5334f-e6b5334f</id>
<link rel='self' href='http://src.eirin.xyz/soryu/atom?h=makima%2Ftask-task-e6b5334f-e6b5334f'/>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/'/>
<updated>2026-01-25T03:53:55+00:00</updated>
<entry>
<title>Update create contract page to use dynamic templates (#29)</title>
<updated>2026-01-25T03:53:55+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-25T03:53:55+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=c908854e7e3571c99cce9f46497ce5337ea0aed1'/>
<id>urn:sha1:c908854e7e3571c99cce9f46497ce5337ea0aed1</id>
<content type='text'>
* feat: Add contract type templates API endpoint

Add a new API endpoint to provide contract type templates (workflow
definitions) separate from file templates. This enables the create
contract page to dynamically show available contract types.

Changes:
- Add ContractTypeTemplate struct in templates.rs with id, name,
  description, phases, default_phase, and is_builtin fields
- Add built-in contract types: 'simple' (plan/execute) and
  'specification' (research/specify/plan/execute/review)
- Add GET /api/v1/contract-types endpoint returning all contract types
- Add frontend ContractTypeTemplate interface and listContractTypes()
  API function

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

* feat: Update create contract modal to use dynamic templates

- Add ContractTypeTemplate interface and listContractTypes API function
  to frontend api.ts
- Add GET /api/v1/contract-types backend endpoint that returns built-in
  contract types (simple, specification) with their phases and defaults
- Update create contract modal to fetch contract types dynamically when
  opened, with loading state and fallback to hardcoded types on error
- Dynamically render contract type selection buttons from fetched types
- Update phase dropdown to use phases from selected contract type
- Replace static getValidPhases/getDefaultPhase calls with dynamic data

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 resume to daemon tasks</title>
<updated>2026-01-23T23:52:35+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-23T23:52:35+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=579c983d3efb8f1414ffb45b9e031f741cce5f76'/>
<id>urn:sha1:579c983d3efb8f1414ffb45b9e031f741cce5f76</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add patch checkpointing</title>
<updated>2026-01-23T01:03:04+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-22T22:32:46+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=1ed362424dafec690f919154f5116471951cda9c'/>
<id>urn:sha1:1ed362424dafec690f919154f5116471951cda9c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add daemon restart feature from settings (#18)</title>
<updated>2026-01-22T01:26:53+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-22T01:26:53+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=b61a907bac09a7649ca3f6d850e771b3b75c7015'/>
<id>urn:sha1:b61a907bac09a7649ca3f6d850e771b3b75c7015</id>
<content type='text'>
* Add daemon restart feature from settings

This adds the ability to restart a connected daemon from the settings page.
The feature includes:

- Backend: RestartDaemon command added to DaemonCommand enum
- Backend: New POST /api/v1/mesh/daemons/{id}/restart endpoint
- Backend: Daemon gracefully shuts down tasks and exits with code 42
  (can be used by process managers like systemd to detect restart requests)
- Frontend: restartDaemon() API function
- Frontend: Restart button in Connected Daemons section of settings
- Frontend: Confirmation dialog before restart to prevent accidental restarts

When a daemon receives the restart command, it:
1. Gracefully shuts down all running Claude processes (5s timeout)
2. Exits with code 42 to signal restart requested
3. The daemon can be restarted by a process manager or manually

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;</content>
</entry>
<entry>
<title>Add task branching feature (#15)</title>
<updated>2026-01-21T17:31:46+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-21T17:31:46+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=94e5604e770d6589f786ea71e51738e21492f301'/>
<id>urn:sha1:94e5604e770d6589f786ea71e51738e21492f301</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove 'task' type contract</title>
<updated>2026-01-19T17:40:25+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-19T17:40:25+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=164941cbd591b46f69a034bb9b86521fd7700ddb'/>
<id>urn:sha1:164941cbd591b46f69a034bb9b86521fd7700ddb</id>
<content type='text'>
</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 Task Contract Type for one-off adhoc tasks (#2)</title>
<updated>2026-01-16T01:12:03+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-15T22:55:04+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=b69dc962cd99aa8b478b7c5facbd56bfb63eda27'/>
<id>urn:sha1:b69dc962cd99aa8b478b7c5facbd56bfb63eda27</id>
<content type='text'>
</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>
<entry>
<title>Add repository history feature to store and suggest previously used repositories (#18)</title>
<updated>2026-01-15T03:37:44+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-15T03:37:44+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=764bd28d08ceaef03cd4050f9568a62d77bbcfca'/>
<id>urn:sha1:764bd28d08ceaef03cd4050f9568a62d77bbcfca</id>
<content type='text'>
- Add repository_history table migration with repo_type, repo_path, use_count, last_used_at
- Add RepositoryHistoryEntry model and CRUD database functions
- Create API endpoints: GET/POST/DELETE /api/v1/repository-history, GET /api/v1/repository-history/suggestions
- Update add_remote_repository and add_local_repository handlers to automatically track history
- Update frontend API with repository history types and functions
- Add Repository History section to Settings page with list of entries and delete functionality
- Add suggestions dropdown to RepositoryPanel when entering new repository URL/path
- Suggestions filter by repo type (remote vs local) and match on user input

Test plan:
- Add a remote repository to a contract - verify it appears in Settings history
- Add a local repository to a contract - verify it appears in Settings history
- Add same repository again - verify use_count increments, not duplicate
- When adding new repository, verify suggestions appear based on history
- Delete a history entry from Settings - verify it's removed
- Verify suggestions only show matching type (remote for remote, local for local)

Co-authored-by: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;</content>
</entry>
</feed>
