diff --git a/CHANGELOG.md b/CHANGELOG.md index 0be2a54..58c561b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,34 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). +## [0.19.0] - 2026-02-18 + +### Added + +- Dedicated retry mode for failed tasks — conversation loop with failure context (error details, failed movement, last message), run session data, and piece structure injected into the system prompt +- Dedicated instruct system prompt for completed/failed task re-instruction — injects task name, content, branch changes, and retry notes directly into the prompt instead of using the generic interactive prompt +- Direct re-execution from `takt list` — "execute" action now runs the task immediately in the existing worktree instead of only requeuing to pending +- `startReExecution` atomic task transition — moves a completed/failed task directly to running status, avoiding the requeue → claim race condition +- Worktree reuse in task execution — reuses existing clone directory when it's still on disk, skipping branch name generation and clone creation +- Task history injection into interactive and summary system prompts — completed/failed/interrupted task summaries are included for context +- Previous run reference support in interactive and instruct system prompts — users can reference logs and reports from prior runs +- `findRunForTask` and `getRunPaths` helpers for automatic run session lookup by task content +- `isStaleRunningTask` process helper extracted from TaskLifecycleService for reuse + +### Changed + +- Interactive module split: `interactive.ts` refactored into `interactive-summary.ts`, `runSelector.ts`, `runSessionReader.ts`, and `selectorUtils.ts` for better cohesion +- `requeueTask` now accepts generic `allowedStatuses` parameter instead of only accepting `failed` tasks +- Instruct/retry actions in `takt list` use the worktree path for conversation and run data lookup instead of the project root +- `save_task` action now requeues the task (saves for later execution), while `execute` action runs immediately + +### Internal + +- Removed `DebugConfig` from models, schemas, and global config — simplified to verbose mode only +- Added stdin simulation test helpers (`stdinSimulator.ts`) for E2E conversation loop testing +- Added comprehensive E2E tests for retry mode, interactive routes, and run session injection +- Added `check:release` npm script for pre-release validation + ## [0.18.2] - 2026-02-18 ### Added diff --git a/docs/CHANGELOG.ja.md b/docs/CHANGELOG.ja.md index 5536fd8..47c7b1e 100644 --- a/docs/CHANGELOG.ja.md +++ b/docs/CHANGELOG.ja.md @@ -6,6 +6,34 @@ フォーマットは [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) に基づいています。 +## [0.19.0] - 2026-02-18 + +### Added + +- 失敗タスク専用のリトライモードを追加 — 失敗コンテキスト(エラー詳細、失敗ムーブメント、最終メッセージ)、実行セッションデータ、ピース構成をシステムプロンプトに注入する対話ループ +- 完了/失敗タスクの再指示用に専用 instruct システムプロンプトを追加 — タスク名・内容・ブランチ変更・リトライノートを汎用の対話プロンプトではなく直接プロンプトに注入 +- `takt list` からの直接再実行 — "execute" アクションで既存ワークツリー内で即座にタスクを実行(pending への再キューだけでなく) +- `startReExecution` によるアトミックなタスクステータス遷移 — completed/failed から直接 running に遷移し、requeue → claim のレースコンディションを回避 +- タスク実行時のワークツリー再利用 — 既存のクローンディレクトリがディスク上に残っていればそのまま再利用(ブランチ名生成やクローン作成をスキップ) +- 対話モードおよびサマリーシステムプロンプトにタスク履歴を注入 — completed/failed/interrupted タスクのサマリーをコンテキストとして提供 +- 対話モードおよび instruct システムプロンプトに前回実行の参照機能 — ログとレポートを参照可能に +- `findRunForTask` / `getRunPaths` ヘルパー — タスク内容による実行セッションの自動検索 +- `isStaleRunningTask` プロセスヘルパーを TaskLifecycleService から抽出し再利用可能に + +### Changed + +- interactive モジュール分割: `interactive.ts` を `interactive-summary.ts`、`runSelector.ts`、`runSessionReader.ts`、`selectorUtils.ts` にリファクタリング +- `requeueTask` が汎用の `allowedStatuses` パラメータを受け取るように変更(`failed` のみだった制約を解除) +- `takt list` の instruct/retry アクションがプロジェクトルートではなくワークツリーパスを使用して対話と実行データの参照を行うように変更 +- `save_task` アクションはタスクを再キュー(後で実行用に保存)、`execute` アクションは即座に実行 + +### Internal + +- `DebugConfig` をモデル・スキーマ・グローバル設定から削除 — verbose モードのみに簡素化 +- stdin シミュレーションテストヘルパー(`stdinSimulator.ts`)を追加し、E2E 対話ループテストを実現 +- リトライモード、対話ルーティング、実行セッション注入の包括的な E2E テストを追加 +- `check:release` npm スクリプトを追加(リリース前検証用) + ## [0.18.2] - 2026-02-18 ### Added diff --git a/docs/README.ja.md b/docs/README.ja.md index a202680..c99c158 100644 --- a/docs/README.ja.md +++ b/docs/README.ja.md @@ -76,10 +76,6 @@ takt --pipeline --task "バグを修正して" --auto-pr ## 使い方 -## 実装メモ - -- failed タスクの retry とセッション再開: [`docs/implements/retry-and-session.ja.md`](./implements/retry-and-session.ja.md) - ### 対話モード AI との会話でタスク内容を詰めてから実行するモード。タスクの要件が曖昧な場合や、AI と相談しながら内容を整理したい場合に便利です。 @@ -453,7 +449,7 @@ movements: | 種類 | 構文 | 説明 | |------|------|------| -| タグベース | `"条件テキスト"` | エージェントが `[STEP:N]` タグを出力し、インデックスでマッチ | +| タグベース | `"条件テキスト"` | エージェントが `[MOVEMENTNAME:N]` タグを出力し、インデックスでマッチ | | AI判定 | `ai("条件テキスト")` | AIが条件をエージェント出力に対して評価 | | 集約 | `all("X")` / `any("X")` | パラレルサブムーブメントの結果を集約 | @@ -945,6 +941,7 @@ export TAKT_OPENCODE_API_KEY=... - [Faceted Prompting](./faceted-prompting.ja.md) - AIプロンプトへの関心の分離(Persona, Policy, Instruction, Knowledge, Output Contract) - [Piece Guide](./pieces.md) - ピースの作成とカスタマイズ - [Agent Guide](./agents.md) - カスタムエージェントの設定 +- [Retry and Session](./implements/retry-and-session.ja.md) - failed タスクの retry とセッション再開 - [Changelog](../CHANGELOG.md) ([日本語](./CHANGELOG.ja.md)) - バージョン履歴 - [Security Policy](../SECURITY.md) - 脆弱性報告 - [ブログ: TAKT - AIエージェントオーケストレーション](https://zenn.dev/nrs/articles/c6842288a526d7) - 設計思想と実践的な使い方ガイド diff --git a/package-lock.json b/package-lock.json index eeb69f0..960e5f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "takt", - "version": "0.18.2", + "version": "0.19.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "takt", - "version": "0.18.2", + "version": "0.19.0", "license": "MIT", "dependencies": { "@anthropic-ai/claude-agent-sdk": "^0.2.37", diff --git a/package.json b/package.json index 4c02de3..d6d786e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "takt", - "version": "0.18.2", + "version": "0.19.0", "description": "TAKT: TAKT Agent Koordination Topology - AI Agent Piece Orchestration", "main": "dist/index.js", "types": "dist/index.d.ts",