<feed xmlns='http://www.w3.org/2005/Atom'>
<title>soryu/makima/src/server, branch makima/contract-deliverables-refactor</title>
<subtitle>soryu-co/soryu mirror</subtitle>
<id>http://src.eirin.xyz/soryu/atom?h=makima%2Fcontract-deliverables-refactor</id>
<link rel='self' href='http://src.eirin.xyz/soryu/atom?h=makima%2Fcontract-deliverables-refactor'/>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/'/>
<updated>2026-01-24T16:17:59+00:00</updated>
<entry>
<title>feat: Add check_deliverables_met tool and deliverable checking for phase transitions</title>
<updated>2026-01-24T16:17:59+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-24T16:17:42+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=6386622eb42702dbfa8701a9a5e2d786846d42a5'/>
<id>urn:sha1:6386622eb42702dbfa8701a9a5e2d786846d42a5</id>
<content type='text'>
Adds deliverable checking functionality to ensure contracts meet phase requirements
before advancing:

- Add check_deliverables_met() function to phase_guidance.rs
- Add should_auto_progress() for autonomous contract progression
- Add generate_deliverable_prompt_guidance() for LLM context
- Add get_next_phase_for_contract() for type-aware phase transitions
- Add new ContractToolRequest::CheckDeliverablesMet tool
- Update advance_phase handler to block transitions when deliverables not met
- Export new types: DeliverableCheckResult, DeliverableItem, AutoProgressDecision, AutoProgressAction

The check_deliverables_met tool helps LLMs determine if all required deliverables
are satisfied before advancing phases, supporting auto-progress when enabled.

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(frontend): Add Templates page for managing contract templates</title>
<updated>2026-01-24T16:17:59+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-24T15:50:43+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=595548db950eca303a7d73ca09f31895d291534f'/>
<id>urn:sha1:595548db950eca303a7d73ca09f31895d291534f</id>
<content type='text'>
- Add NavStrip component for top navigation between pages
- Create Templates page with template card grid layout
- Create TemplateEditor component for editing phase deliverables
- Add navigation state management in stores
- Implement three built-in templates:
  - Simple: Plan phase (Plan deliverable), Execute phase (PR deliverable)
  - Specification: Research, Specify, Plan, Execute, Review phases with deliverables
  - Execute: Single execute phase with no deliverables
- Support for creating custom templates with configurable phases/deliverables
- Templates are persisted to localStorage
- Add comprehensive CSS styling matching existing design patterns

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

[WIP] Heartbeat checkpoint - 2026-01-24 16:13:00 UTC

[WIP] Heartbeat checkpoint - 2026-01-24 16:14:29 UTC
</content>
</entry>
<entry>
<title>feat: Simplify phase deliverables and add 'execute' contract type</title>
<updated>2026-01-24T16:11:39+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-24T15:18:21+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=abc5fbed331ea527ccaac0cd4120c4a0650f8bc0'/>
<id>urn:sha1:abc5fbed331ea527ccaac0cd4120c4a0650f8bc0</id>
<content type='text'>
## Changes

### Phase Deliverables Simplified
- **Simple contract type**:
  - Plan phase: Only 'Plan' deliverable (required)
  - Execute phase: Only 'PR' deliverable (required)

- **Specification contract type**:
  - Research phase: Only 'Research Notes' deliverable (required)
  - Specify phase: Only 'Requirements Document' deliverable (required)
  - Plan phase: Only 'Plan' deliverable (required)
  - Execute phase: Only 'PR' deliverable (required)
  - Review phase: Only 'Release Notes' deliverable (required)

### New 'execute' Contract Type
- Only has 'execute' phase (no plan or review phases)
- NO deliverables at all - executes tasks directly
- Added to ContractType enum with proper Display/FromStr implementations
- Added helper methods: `initial_phase()`, `terminal_phase()`

### API Updates
- Added `get_phase_deliverables_for_type()` for contract-type-aware deliverables
- Added `get_phase_checklist_for_type()` for contract-type-aware checklists
- Added `check_phase_completion_for_type()` for contract-type-aware completion checks
- Legacy functions remain for backward compatibility (default to 'simple' type)

### Files Modified
- makima/src/llm/phase_guidance.rs - Core deliverable definitions
- makima/src/db/models.rs - ContractType enum and Contract methods
- makima/src/llm/mod.rs - Export new functions
- makima/src/server/handlers/contract_daemon.rs - Use type-aware functions
- makima/src/server/handlers/contract_chat.rs - Use type-aware functions

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>Fix completion actions: default to PR and support remote repos (#21)</title>
<updated>2026-01-22T13:17:17+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-22T13:17:17+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=265f8cf14fec9d7116d09af49e4b48b357faceda'/>
<id>urn:sha1:265f8cf14fec9d7116d09af49e4b48b357faceda</id>
<content type='text'>
* Fix completion actions: default to PR and support remote repos

- Change default completion action from 'branch' to 'pr' for tasks
  using daemon working directory
- Allow PR completion action to work without target_repo_path if the
  worktree already has an origin remote configured (e.g., when cloned
  from a remote URL)
- Update create_pull_request to accept optional target_repo parameter

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

* Add dismiss functionality for completed standalone tasks

## Changes

### Backend
- Add 'hidden' field to Task model (models.rs)
- Add database migration for hidden column (20250122000000_add_task_hidden.sql)
- Update task listing queries to include hidden field and filter out hidden tasks
- Update update_task_for_owner to handle hidden field

### Frontend
- Add hidden field to TaskSummary interface (api.ts)
- Add dismissTask API function (api.ts)
- Add hideTask function to useTasks hook
- Add Dismiss button to TaskList for completed standalone tasks
- Wire up onDismiss handler in mesh.tsx route

## Behavior
- Completed standalone tasks (tasks without a contract) show a "Dismiss" button
- Dismissing a task sets hidden=true and removes it from the task list
- Hidden tasks are filtered out by default in all task listing queries

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>Fix daemon disconnects not being continuable</title>
<updated>2026-01-22T03:08:48+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-22T01:12:09+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=20ad48f4e058e2f6c68a0d7881aedf00a6b74da1'/>
<id>urn:sha1:20ad48f4e058e2f6c68a0d7881aedf00a6b74da1</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 pausing tasks</title>
<updated>2026-01-22T00:59:18+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-22T00:59:18+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=b84b3f782d3a3d6bf7ed8040fd72907ca19db8c6'/>
<id>urn:sha1:b84b3f782d3a3d6bf7ed8040fd72907ca19db8c6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Heartbeat daemon</title>
<updated>2026-01-21T23:52:38+00:00</updated>
<author>
<name>soryu</name>
<email>soryu@soryu.co</email>
</author>
<published>2026-01-21T23:47:38+00:00</published>
<link rel='alternate' type='text/html' href='http://src.eirin.xyz/soryu/commit/?id=a6f91232285ad2db0ac58a7d0bc196e47da1ca8c'/>
<id>urn:sha1:a6f91232285ad2db0ac58a7d0bc196e47da1ca8c</id>
<content type='text'>
</content>
</entry>
</feed>
