@fukuchang/taskchute-mcp 0.1.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +227 -1
- package/README.md +45 -9
- package/dist/index.js +1813 -94
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,236 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 0.3.0 (2026-05-28) — 実績時刻の秒精度サポート
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- `set_actual_times` の `start_time` / `end_time` が `HH:MM` に加え `HH:MM:SS`
|
|
8
|
+
も受け入れるようになった。秒は任意で、省略時は従来通り 0 として扱う。Web UI
|
|
9
|
+
でも実績時刻の入力 / 表示が秒精度で行えるようになり、Play ボタンを押した時刻
|
|
10
|
+
も秒単位で `actual_start_time` に記録される。
|
|
11
|
+
|
|
12
|
+
### Notes
|
|
13
|
+
|
|
14
|
+
- 後方互換あり: 既存の `HH:MM` 入力 / 保存データはそのまま動く。Supabase の
|
|
15
|
+
時刻カラムは TEXT のためマイグレーション不要
|
|
16
|
+
- `start_task` / 並列タスク / 割り込みタスクで記録される `actual_start_time`
|
|
17
|
+
は今後 `HH:MM:SS` 形式で返ることがある (従来は `HH:MM`)。文字列としての
|
|
18
|
+
扱いは変わらないが、下流ツールが正規表現で `HH:MM` のみを期待していた場合
|
|
19
|
+
は `HH:MM(:SS)?` にゆるめる必要がある
|
|
20
|
+
|
|
21
|
+
## 0.2.0 (2026-05-28) — Web パリティ完全達成 ✨
|
|
22
|
+
|
|
23
|
+
5 PR (PR1〜5) で MCP/CLI を Web 機能パリティまで拡張し、PR6 で SOLID 観点の
|
|
24
|
+
リファクタを実施。tool 数 5 → **39**。詳細は下記の PR 単位サブセクション。
|
|
25
|
+
|
|
26
|
+
### PR6 — 付け焼き刃清算 (refactor)
|
|
27
|
+
|
|
28
|
+
- DRY: `tasks/add.ts` / `tasks/update.ts` の手書き prefix 解決を
|
|
29
|
+
`resolveResourceIdByPrefix` に統一
|
|
30
|
+
- YAGNI: `tasks/update.ts` の `void date;` デッドコード除去
|
|
31
|
+
- fail-fast: `update_routine` の auditingTask undefined fallback を削除し、
|
|
32
|
+
設定ミスは早期失敗 (`McpToolError` / `CliError`) に
|
|
33
|
+
- 重複集約: 4 ファイルの error wrap パターンを `wrapDomainErrors` ヘルパー
|
|
34
|
+
(`crypto-context.ts`) に集約
|
|
35
|
+
- type predicate 化: status enum の `as` キャストを `isRoutineStatus` /
|
|
36
|
+
`isTimeBlockStatus` で除去
|
|
37
|
+
- test-helpers: makeMockAppContext のデフォルトで auditingTask の duck-typed
|
|
38
|
+
mock を提供
|
|
39
|
+
- 機能変更ゼロ、テスト 608 件全 pass
|
|
40
|
+
|
|
41
|
+
### PR5: 高度な task 操作 4 tool / Web パリティ完全達成 ✨
|
|
42
|
+
|
|
43
|
+
PR1〜4 で揃えた基本 CRUD + リソース管理に加え、Web Today で可能な高度な操作
|
|
44
|
+
4 種を実装。これで **Web 機能パリティを完全達成** (35 → **39 tool**)。
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- `set_actual_times` — 実績開始/終了時刻を直接指定 (Play ボタン押し忘れ
|
|
49
|
+
リカバリ用)。Domain の `buildSetActualTimesPatch` をそのまま流用 (Web の
|
|
50
|
+
task-row-actual-times-editor と完全同期挙動):
|
|
51
|
+
- start + end → completed (sessions に 1 件)
|
|
52
|
+
- start のみ → running (currentSession セット、過去 sessions 破棄)
|
|
53
|
+
- 両方 null → planned リセット (実績全クリア)
|
|
54
|
+
- end < start → 日跨ぎセッション扱い (finishedAt を翌日繰上げ)
|
|
55
|
+
- end のみ (start なし) → McpToolError
|
|
56
|
+
- `interrupt_task` — 走行中タスクへの割り込み。Domain の
|
|
57
|
+
`interruptTaskWithAudit` を使い、1 呼び出しで 3 タスクを操作 + split note
|
|
58
|
+
3 件を自動記録:
|
|
59
|
+
- finishedOriginal (元タスク completed)
|
|
60
|
+
- interruption (running 状態で新規作成 + 即計測開始)
|
|
61
|
+
- continuation (元タスクの残作業を planned で新規、splitFromTaskId 保持)
|
|
62
|
+
- 元タスクが running 中でないとエラー
|
|
63
|
+
- `add_parallel_task` — 進行中タスクと**並行する**新規タスクを追加。
|
|
64
|
+
`start_immediately: true` (default) で running 状態 + 即計測開始、false で
|
|
65
|
+
planned 作成のみ。`is_background: true` 併用で見積もり集計から除外
|
|
66
|
+
- `reorder_task` — 並び順 (`order_index`) と `scheduled_start_time` を直接
|
|
67
|
+
指定。Web は dnd-kit + computeReorderPatch だが、MCP/CLI は AI/人間が直接
|
|
68
|
+
数値指定する方が直感的なので patch を直接受け取る形にした (慣習 10 単位)
|
|
69
|
+
|
|
70
|
+
### test-helpers 拡張
|
|
71
|
+
|
|
72
|
+
- `InMemoryTaskNoteRepository` を新設 (`interrupt_task` の split note create
|
|
73
|
+
テストに必要)
|
|
74
|
+
- `makeMockAppContext` の opts に `taskNoteRepo` を追加
|
|
75
|
+
|
|
76
|
+
### 全 PR 達成サマリー
|
|
77
|
+
|
|
78
|
+
- PR1: Task CRUD 拡張 (5 → 9 tool)
|
|
79
|
+
- PR2: List 6 + audit lookups 有効化 (15 tool)
|
|
80
|
+
- PR3: Project / Tag / Context CRUD 12 tool (27 tool)
|
|
81
|
+
- PR4: Routine + TimeBlock CRUD 8 tool + propagation (35 tool)
|
|
82
|
+
- **PR5: 高度な task 操作 4 tool (39 tool / Web パリティ完全達成 ✨)**
|
|
83
|
+
|
|
84
|
+
### PR4: Routine + TimeBlock CRUD 8 tool / propagation 含む
|
|
85
|
+
|
|
86
|
+
Web の Routine / TimeBlock ページの write 操作を MCP からも全部できるよう拡張。
|
|
87
|
+
27 tool → **35 tool**。`update_routine` は未来 planned task への自動伝播を含み、
|
|
88
|
+
PR2 で露出した `repos.auditingTask` 経由で `routine-propagation` cause を audit
|
|
89
|
+
に記録する (Web `routines-page.tsx` の onUpdate ロジックを再現)。
|
|
90
|
+
|
|
91
|
+
### Added
|
|
92
|
+
|
|
93
|
+
- `create_routine` / `update_routine` / `archive_routine` / `delete_routine`
|
|
94
|
+
- frequency は zod の `discriminatedUnion('type', [...])` で型安全
|
|
95
|
+
(`daily` / `weekly` + weekdays / `monthly` + days / `custom` + cron)
|
|
96
|
+
- update_routine は `pickPropagationTargets` で未来 planned task を絞り込み、
|
|
97
|
+
`buildRoutineTaskPatch` で patch を構築、`auditingTask.updateWithCause(id,
|
|
98
|
+
patch, 'routine-propagation')` で伝播。`propagated_task_count` を返す
|
|
99
|
+
- 過去日 / running / completed / skipped / 別 routine_id は保護される
|
|
100
|
+
- `auditingTask` が undefined の時 (テスト等) は通常 update に fallback
|
|
101
|
+
- `create_time_block` / `update_time_block` / `archive_time_block` /
|
|
102
|
+
`delete_time_block`
|
|
103
|
+
- weekdays は 0=日曜~6=土曜の配列、min(1) 強制
|
|
104
|
+
- default_project_id / default_context_id / default_tag_ids 指定可能 (ブロック
|
|
105
|
+
範囲に追加されたタスクのデフォルト値として Web 側で使われる)
|
|
106
|
+
|
|
107
|
+
### Notes
|
|
108
|
+
|
|
109
|
+
- update_routine description に「**未来 planned タスクの手動編集も上書きされる
|
|
110
|
+
点に注意**」を明示。Web も同じ仕様なので AI/CLI/Web 全部で挙動が揃う
|
|
111
|
+
- archive vs delete 規約継承:
|
|
112
|
+
- routine archive: 既存 task の routine_id 維持 (履歴可)
|
|
113
|
+
- routine delete: routine_id は ON DELETE SET NULL で NULL 化
|
|
114
|
+
- time_block: タスクは時刻ベースで動的にブロック判定するので参照不整合なし
|
|
115
|
+
|
|
116
|
+
### PR3: Project / Tag / Context CRUD 12 tool
|
|
117
|
+
|
|
118
|
+
Web の Project / Tag / Context ページで可能な write 操作を MCP からも全部
|
|
119
|
+
できるよう拡張。15 tool → **27 tool** に。3 リソース × 4 op
|
|
120
|
+
(create / update / archive / delete) を network 越しに完結できる。
|
|
121
|
+
|
|
122
|
+
### Added
|
|
123
|
+
|
|
124
|
+
- `create_project` / `update_project` / `archive_project` / `delete_project`
|
|
125
|
+
- update は partial / null クリア (PR1 update_task と同じセマンティクス)
|
|
126
|
+
- parent_project_id は事前存在検証 + 自己参照禁止
|
|
127
|
+
- archive vs delete: archive はタスクの project_id 維持、delete は
|
|
128
|
+
`ON DELETE SET NULL` で NULL 化 (description に明示)
|
|
129
|
+
- `create_tag` / `update_tag` / `archive_tag` / `delete_tag`
|
|
130
|
+
- delete はタスクの tag_ids 配列 (UUID[]) に**孤児 id**を残す。
|
|
131
|
+
UI 表示時に「不明なタグ」扱いになるので、履歴尊重なら archive 推奨
|
|
132
|
+
(description に明示)
|
|
133
|
+
- `create_context` / `update_context` / `archive_context` / `delete_context`
|
|
134
|
+
- icon フィールドあり (絵文字またはアイコン名)
|
|
135
|
+
- delete はタスクの context_id を NULL 化
|
|
136
|
+
|
|
137
|
+
### Schema 設計
|
|
138
|
+
|
|
139
|
+
- archive 系 tool は `id` のみ。`active → archived` の遷移を意図する明示的 API
|
|
140
|
+
- update 系 tool で `status: 'active' | 'archived'` も受け付けるが、archive 化は
|
|
141
|
+
`archive_X` tool 推奨と description で誘導 (archived → active 復元には update
|
|
142
|
+
で `status: 'active'` を使う想定)
|
|
143
|
+
- partial update での null セマンティクス継承 ([[feedback_mcp_cli_parity_design]])
|
|
144
|
+
|
|
145
|
+
### PR2: List 6 種 + audit 有効化
|
|
146
|
+
|
|
147
|
+
Web の Today / Resource ページで参照できるリソースを MCP からも引けるよう拡張。
|
|
148
|
+
9 tool → **15 tool** に。AI が `add_task` / `update_task` の `project_id` /
|
|
149
|
+
`tag_ids` / `context_id` に渡す UUID を取得できるようになり、PR1 で追加した
|
|
150
|
+
update_task のフル機能が初めて実用化される。
|
|
151
|
+
|
|
152
|
+
### Added
|
|
153
|
+
|
|
154
|
+
- `list_projects` / `list_tags` / `list_contexts` — リソース一覧。`status`
|
|
155
|
+
filter (`active` / `archived`、tag/context は同じ、project は同じ) で archived を
|
|
156
|
+
含めるか選択可能。`limit` 既定 100 で AI コンテキスト爆発を防ぐ
|
|
157
|
+
- `list_routines` — ルーチン (繰り返しタスクテンプレート) 一覧。`frequency` は
|
|
158
|
+
discriminated union (`{type: 'daily'}` / `{type: 'weekly', weekdays: [...]}` /
|
|
159
|
+
`{type: 'monthly', days: [...]}` / `{type: 'custom', cron: '...'}`) のまま出力
|
|
160
|
+
- `list_time_blocks` — タイムブロック (時間帯テンプレート) 一覧。`weekdays` /
|
|
161
|
+
`start_time` / `end_time` を snake_case で
|
|
162
|
+
- `list_recent_tasks` — 過去 N 日 (default 90) のタスク。`query` で fuzzy match
|
|
163
|
+
(ひらがな↔カタカナ正規化込み) で類似タイトル上位を返す。指定なしは
|
|
164
|
+
`updatedAt` 降順 (最近触った順)
|
|
165
|
+
- 5 つの format helper (`project-summary` / `tag-summary` / `context-summary` /
|
|
166
|
+
`routine-summary` / `time-block-summary`) を新設。`task-summary` と同じく
|
|
167
|
+
snake_case + ISO 8601 + null は出さず optional 省略
|
|
168
|
+
|
|
169
|
+
### Changed
|
|
170
|
+
|
|
171
|
+
- **audit lookups を有効化**。`createNodeAppContext` 内で
|
|
172
|
+
`buildRepositories(supabase, session, () => lookupsRef.current)` を呼び、初回
|
|
173
|
+
ロード + 必要に応じて `ctx.refreshLookups()` で再取得できるようにした。これに
|
|
174
|
+
より PR1 の `update_task` 等が実行された時に TaskNote へ audit ノートが
|
|
175
|
+
自動記録される (Web と非対称だった監査ログが揃う)
|
|
176
|
+
- `AppContext` に `refreshLookups: () => Promise<void>` を追加。MCP server が
|
|
177
|
+
長命プロセスで動く時、新規 project/tag/context の name を audit に反映する
|
|
178
|
+
ための明示的 refresh フック
|
|
179
|
+
- `buildRepositories` の戻り値型に `auditingTask?: AuditingTaskRepository` を
|
|
180
|
+
追加。`getLookups` を渡した時のみ存在し、PR4 の routine 伝播で
|
|
181
|
+
`updateWithCause('routine-propagation')` を型安全に呼べる公開口を作った。
|
|
182
|
+
Web 側 `useAuditingTaskRepository` は既存の `instanceof` 判定で動き続ける
|
|
183
|
+
(互換)
|
|
184
|
+
- `test-helpers.ts` に `InMemoryRoutineRepository` / `InMemoryTimeBlockRepository`
|
|
185
|
+
+ `makeRoutine` / `makeTimeBlock` を追加。`makeMockAppContext` に
|
|
186
|
+
`routineRepo` / `timeBlockRepo` opts と `refreshLookups: () => Promise.resolve()`
|
|
187
|
+
既定実装を追加
|
|
188
|
+
|
|
189
|
+
### PR1: Task CRUD パリティ
|
|
190
|
+
|
|
191
|
+
Web の Today で当たり前にできる task 操作を MCP からも全部できるよう拡張。
|
|
192
|
+
5 tool → **9 tool** に。
|
|
193
|
+
|
|
194
|
+
### Added
|
|
195
|
+
|
|
196
|
+
- `update_task` — タスクのユーザー編集可能フィールドを部分更新する
|
|
197
|
+
(`title` / `description` / `estimated_seconds` / `scheduled_start_time` /
|
|
198
|
+
`project_id` / `context_id` / `tag_ids` / `notify_at_scheduled_start` /
|
|
199
|
+
`is_background`)。`undefined` は変更なし、`null` は明示クリア。`tag_ids` は
|
|
200
|
+
全置換。`status` / `order_index` / `actual_start_time` / `routine_id` 等の
|
|
201
|
+
システムフィールドは update では触れない (専用 tool 経由のみ)。
|
|
202
|
+
- `delete_task` — タスクを削除する。既定は `deleteWithRoutineSkip` で Routine
|
|
203
|
+
由来タスクを今日以降に消した時 `routine_expansions` に skip 記録を残す。
|
|
204
|
+
`hard_delete: true` で物理削除のみ (上級者向け)。
|
|
205
|
+
- `skip_task` — タスクを skipped に遷移させる。running 中なら currentSession を
|
|
206
|
+
sessions に取り込む。
|
|
207
|
+
- `reopen_task` — completed / skipped を planned に戻す。planned/running/paused
|
|
208
|
+
は no-op。
|
|
209
|
+
|
|
210
|
+
### Changed
|
|
211
|
+
|
|
212
|
+
- `add_task` の入力に `project_id` / `context_id` / `tag_ids` /
|
|
213
|
+
`scheduled_start_time` / `notify_at_scheduled_start` / `is_background` を追加
|
|
214
|
+
(全 optional)。これにより MCP からも Web の Today add 同等のタスク追加が可能
|
|
215
|
+
になった。
|
|
216
|
+
- `add_task` / `update_task` は `project_id` / `context_id` / `tag_ids` を受け
|
|
217
|
+
取った時、RLS より前に `findById` で存在検証してから AI に分かりやすい
|
|
218
|
+
`McpToolError` を返す。
|
|
219
|
+
- `test-helpers.ts` に `InMemoryProjectRepository` / `InMemoryTagRepository` /
|
|
220
|
+
`InMemoryContextRepository` を追加。`makeMockAppContext` に
|
|
221
|
+
`projectRepo` / `tagRepo` / `contextRepo` を渡せる opts を追加。
|
|
222
|
+
|
|
223
|
+
## 0.1.2 (2026-05-24)
|
|
4
224
|
|
|
5
225
|
CLI (`@fukuchang/taskchute-cli`) と歩調を揃えるため、初回リリースのバージョン
|
|
6
226
|
を 0.1.0 ではなく 0.1.2 から開始する。以降は SemVer に従って独立に bump する。
|
|
7
227
|
|
|
228
|
+
初回 publish は Bypass 2FA Granular Access Token で bootstrap publish した後、
|
|
229
|
+
即 token revoke + Trusted Publisher (GitHub Actions OIDC / `publish-mcp.yml`)
|
|
230
|
+
登録 + `Publishing access: Require 2FA and disallow tokens` 設定に切り替え。
|
|
231
|
+
以降の release は `mcp-v*` tag push で `.github/workflows/publish-mcp.yml` が
|
|
232
|
+
OIDC publish する経路に固定される。
|
|
233
|
+
|
|
8
234
|
- Initial release. 5 tools 公開:
|
|
9
235
|
- `list_tasks(date?)` — 指定日 (省略時は今日) のタスク一覧を返す
|
|
10
236
|
- `add_task(title, date?, estimated_seconds?, description?)` — タスク追加
|
package/README.md
CHANGED
|
@@ -3,24 +3,60 @@
|
|
|
3
3
|
TaskChute MCP server — [Model Context Protocol](https://modelcontextprotocol.io/) 経由で
|
|
4
4
|
E2EE 暗号化された TaskChute タスクを Claude Desktop / Claude Code 等から操作するためのサーバー。
|
|
5
5
|
|
|
6
|
-
> **Status
|
|
7
|
-
>
|
|
8
|
-
>
|
|
9
|
-
>
|
|
6
|
+
> **Status: Web パリティ完全達成 ✨** (PR1〜5 / 39 tool)。Web の Today /
|
|
7
|
+
> Resource / Routine / TimeBlock 操作 + 割り込み / 並列タスク / 実績時刻直接
|
|
8
|
+
> 指定 / D&D reorder まで全機能を AI から操作できる。Routine update は未来
|
|
9
|
+
> planned task への自動伝播、interrupt は split note 自動記録、audit lookups
|
|
10
|
+
> も有効。初回バージョン (0.1.2) は CLI と歩調を揃えるためのもので、以降は
|
|
11
|
+
> 独立 SemVer。
|
|
12
|
+
|
|
13
|
+
## インストール
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm i -g @fukuchang/taskchute-mcp
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
`taskchute-mcp` コマンドが PATH に通る。MCP client (Claude Desktop / Claude Code 等)
|
|
20
|
+
の設定から `command: "taskchute-mcp"` で起動できる。
|
|
10
21
|
|
|
11
22
|
## 提供 tool
|
|
12
23
|
|
|
13
24
|
| tool | 説明 |
|
|
14
25
|
| --- | --- |
|
|
15
26
|
| `list_tasks` | 指定日 (省略時は今日) のタスク一覧を返す |
|
|
16
|
-
| `add_task` | タスクを追加する (title, date?, estimated_seconds?, description?) |
|
|
27
|
+
| `add_task` | タスクを追加する (title, date?, estimated_seconds?, description?, project_id?, context_id?, tag_ids?, scheduled_start_time?, notify_at_scheduled_start?, is_background?) |
|
|
28
|
+
| `update_task` | タスクのフィールドを部分更新する (タイトル / 詳細 / 見積もり / 予定時刻 / project / context / tags / 通知 / バックグラウンドフラグ)。`null` で明示クリア、`tag_ids` は全置換 |
|
|
29
|
+
| `delete_task` | タスクを削除する (Routine 由来タスクを今日以降に消すと `routine_expansions` に skip 記録、`hard_delete: true` で物理削除のみ) |
|
|
17
30
|
| `start_task` | タスクの計測を開始する (status → running) |
|
|
18
31
|
| `pause_task` | タスクを一時停止する (status → paused) |
|
|
19
32
|
| `done_task` | タスクを完了する (status → completed) |
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
`
|
|
23
|
-
|
|
33
|
+
| `skip_task` | タスクをスキップする (status → skipped)。reopen で planned に戻せる |
|
|
34
|
+
| `reopen_task` | completed / skipped を planned に戻す |
|
|
35
|
+
| `list_projects` | プロジェクト一覧 (status filter / limit 既定 100)。add/update_task の `project_id` を引くために使う |
|
|
36
|
+
| `list_tags` | タグ一覧。`tag_ids` を引くために使う |
|
|
37
|
+
| `list_contexts` | コンテキスト一覧。`context_id` を引くために使う |
|
|
38
|
+
| `list_routines` | ルーチン (繰り返しタスクテンプレート) 一覧。`frequency` は discriminated union (`{type: 'daily'}` / `{type: 'weekly', weekdays: [...]}` 等) のまま |
|
|
39
|
+
| `list_time_blocks` | タイムブロック (時間帯テンプレート) 一覧 |
|
|
40
|
+
| `list_recent_tasks` | 過去 N 日 (既定 90) のタスク。`query` で fuzzy match (ひらがな↔カタカナ正規化込み) 検索可能 |
|
|
41
|
+
| `create_project` / `update_project` / `archive_project` / `delete_project` | プロジェクト CRUD。`update` は partial / null クリア。`archive` はタスクの project_id を維持、`delete` は NULL 化 (ON DELETE SET NULL) |
|
|
42
|
+
| `create_tag` / `update_tag` / `archive_tag` / `delete_tag` | タグ CRUD。`delete` は tag_ids 配列に孤児 id を残すので注意 (UI 表示時に「不明なタグ」扱い) |
|
|
43
|
+
| `create_context` / `update_context` / `archive_context` / `delete_context` | コンテキスト CRUD。`delete` はタスクの context_id を NULL 化 |
|
|
44
|
+
| `create_routine` / `update_routine` / `archive_routine` / `delete_routine` | ルーチン CRUD。`update_routine` は **未来 planned task に自動伝播** (title / estimated / project / context / tags / scheduled_start_time)。手動編集も上書きされる点に注意。`propagated_task_count` を返す |
|
|
45
|
+
| `create_time_block` / `update_time_block` / `archive_time_block` / `delete_time_block` | タイムブロック CRUD。`weekdays` は 0=日曜~6=土曜の配列 (空不可) |
|
|
46
|
+
| `set_actual_times` | 実績開始/終了時刻を直接指定 (Play 押し忘れリカバリ用)。start+end → completed、start のみ → running、両方 null → planned リセット、end < start → 日跨ぎセッション |
|
|
47
|
+
| `interrupt_task` | 走行中タスクを「割り込み」で分割。1 呼び出しで 3 タスクを生成 (元タスク完了 / 割り込み running / 残作業 planned) + split note 3 件自動記録 |
|
|
48
|
+
| `add_parallel_task` | 進行中タスクと並行する新規タスクを追加。既定で running 状態 + 即計測開始 |
|
|
49
|
+
| `reorder_task` | 並び順 (order_index) と所属タイムブロックを直接指定 (慣習 10 単位) |
|
|
50
|
+
|
|
51
|
+
入力 `id` は full UUID。`list_tasks` の結果から取って各 tool に渡す想定。
|
|
52
|
+
`estimated_seconds` は秒数の整数 (CLI と違って文字列パースはしない)。
|
|
53
|
+
|
|
54
|
+
**部分更新セマンティクス**: `update_task` の各フィールドは「未指定 (`undefined`) =
|
|
55
|
+
変更なし、`null` = 明示クリア」を区別する。`title` / `estimated_seconds` /
|
|
56
|
+
`notify_at_scheduled_start` / `is_background` / `tag_ids` は `null` を受け取らない
|
|
57
|
+
(常に値を渡す or 省略)。`status` / `order_index` / `actual_start_time` /
|
|
58
|
+
`current_session` / `sessions` / `routine_id` / `split_from_task_id` 等の
|
|
59
|
+
システムフィールドは update では触れない (専用 tool 経由のみ)。
|
|
24
60
|
|
|
25
61
|
## 認証 / E2EE
|
|
26
62
|
|