387 Commits

Author SHA1 Message Date
nrslib
f2ca01ffe0 refactor: provider/model resolution precedenceを一元化 2026-02-23 15:28:38 +09:00
nrslib
3970b6bcf9 fix: repertoire add のパイプ stdin で複数 confirm が失敗する問題を修正
gh api の stdio を inherit→pipe に変更し stdin の消費を防止。
readline の内部バッファ消失を防ぐためシングルトン pipe line queue を導入。
2026-02-23 15:18:52 +09:00
nrslib
69f13283a2 fix: movement provider override precedence in AgentRunner 2026-02-23 15:18:32 +09:00
nrslib
95cd36037a feat: ProjectLocalConfig に concurrency を追加 2026-02-23 14:59:40 +09:00
nrslib
6a28929497 fix: 通知ユーティリティのテストモック追加と check:release の通知対応
通知機能(notifySuccess/notifyError/playWarningSound)追加に伴い、
テストの vi.mock を修正。重複モックの統合、vitest 環境変数の追加、
GH API の recursive パラメータ修正、check:release に macOS 通知を追加。
2026-02-23 14:34:20 +09:00
nrs
e5902b87ad
takt: Execute アクションで tasks.yaml への追加をスキップする skipTaskList オプション (#334)
- SelectAndExecuteOptions に skipTaskList フラグを追加
- routing.ts の Execute アクションで skipTaskList: true を設定
- taskRecord の null チェックで条件分岐を統一
- テストを現在の taskResultHandler API に合わせて修正
2026-02-22 22:05:13 +09:00
nrs
f307ed80f0
takt: tasuku-takt-list-komandoni-iss (#335) 2026-02-22 21:57:48 +09:00
nrs
4a7dea48ca
takt: tasuku-taktga-surupull-request (#336) 2026-02-22 21:52:40 +09:00
nrs
b309233aeb
takt: github-issue-328-tasuku-ritora (#340) 2026-02-22 21:43:25 +09:00
nrs
9e68f086d4
takt: refactor-project-config-case (#358) 2026-02-22 21:33:42 +09:00
nrs
c066db46c7
takt: refactor-clone-manager (#359) 2026-02-22 21:28:46 +09:00
nrs
1acd991e7e
feat: pipeline モードでの Slack 通知を強化 (#346) (#347)
* feat: pipeline モードでの Slack 通知を try/finally パターンで実装

- executePipeline の本体を try/finally で囲み、全終了パスで通知を送信
- PipelineResult でスプレッド演算子による不変状態追跡
- notifySlack ヘルパーで webhook 未設定時は即 return
- 既存の早期リターンパターンを保持したまま通知機能を追加

* refactor: executePipeline のオーケストレーションと各ステップを分離

- execute.ts: オーケストレーション + Slack 通知 (157行)
- steps.ts: 5つのステップ関数 + テンプレートヘルパー (233行)
- runPipeline で全ステップを同じ抽象レベルに揃えた
- buildResult ヘルパーで let 再代入を最小化

* test: commitAndPush の git 操作失敗時の exit code 4 テストを追加
2026-02-22 21:06:29 +09:00
Tomohisa Takaoka
a08adadfb3
fix: PR creation failure handling + use default branch for base (#345)
* fix: mark task as failed when PR creation fails

Previously, when PR creation failed (e.g. invalid base branch),
the task was still marked as 'completed' even though the PR was
not created. This fix ensures:

- postExecutionFlow returns prFailed/prError on failure
- executeAndCompleteTask marks the task as failed when PR fails
- selectAndExecuteTask runs postExecution before persisting result

The pipeline path (executePipeline) already handled this correctly
via EXIT_PR_CREATION_FAILED.

* fix: use detectDefaultBranch instead of getCurrentBranch for PR base

Previously, baseBranch for PR creation was set to HEAD's current branch
via getCurrentBranch(). When the user was on a feature branch like
'codex/pr-16-review', PRs were created with --base codex/pr-16-review,
which fails because it doesn't exist on the remote.

Now uses detectDefaultBranch() (via git symbolic-ref refs/remotes/origin/HEAD)
to always use the actual default branch (main/master) as the PR base.

Affected paths:
- resolveTask.ts (takt run)
- selectAndExecute.ts (interactive mode)
- pipeline/execute.ts (takt pipeline)
2026-02-22 20:37:14 +09:00
nrs
f557db0908
feat: support --create-worktree in pipeline mode (#361)
Pipeline mode previously ignored the --create-worktree option.
Now when --create-worktree yes is specified with --pipeline,
a worktree is created and the agent executes in the isolated directory.

- Add createWorktree field to PipelineExecutionOptions
- Pass createWorktreeOverride from routing to executePipeline
- Use confirmAndCreateWorktree when createWorktree is true
- Execute task in worktree directory (execCwd) instead of project cwd
2026-02-22 20:32:36 +09:00
nrslib
a5e2badc0b fix: Claude resume候補をjsonlフォールバックで取得 2026-02-22 17:54:15 +09:00
nrs
134b666480
Merge pull request #350 from tomohisa/fix/worktree-dir-plural
fix: use plural 'takt-worktrees' as default clone directory name
2026-02-22 17:41:21 +09:00
nrs
077d19a6b0
Merge pull request #355 from s-kikuchi/takt/20260222T0402-tasuku-purojekuto-takt-config
fix: Project-level model config ignored — getLocalLayerValue missing model case
2026-02-22 17:35:33 +09:00
nrs
1d6770c479
Merge pull request #344 from tomohisa/feat/auto-sync-before-clone
feat: opt-in auto_fetch and base_branch config for clone
2026-02-22 17:29:39 +09:00
kikuchi
753deb6539 fix: Project-level model config ignored — getLocalLayerValue missing model case 2026-02-22 13:49:32 +09:00
nrslib
c630d78806 refactor: rename ensemble to repertoire across codebase 2026-02-22 10:50:50 +09:00
nrslib
53a465ef56 fix: update deploySkill for facets layout, add piped stdin confirm support 2026-02-22 08:12:00 +09:00
Tomohisa Takaoka
1d7336950e feat: opt-in auto_fetch and base_branch config for clone
Replace the always-on syncDefaultBranch with opt-in resolveBaseBranch:

- Add auto_fetch config (default: false) — only fetch when enabled
- Add base_branch config (project and global) — fallback to current branch
- Fetch-only mode: git fetch origin without modifying local branches
- Use fetched commit hash (origin/<base_branch>) to reset clone to latest
- No more git merge --ff-only or git fetch origin main:main

Config example:
  # ~/.takt/config.yaml or .takt/config.yaml
  auto_fetch: true
  base_branch: develop

Addresses review feedback: opt-in behavior, no local branch changes,
configurable base branch with current-branch fallback.
2026-02-21 12:30:26 -08:00
nrslib
9e3fb5cf16 fix: validate override piece via resolver including ensemble scope 2026-02-22 02:47:11 +09:00
nrslib
102f31447a refactor: rename faceted to facets across package layout 2026-02-22 02:40:33 +09:00
nrslib
8930688a95 fix: simplify package content check and facets label 2026-02-22 02:39:25 +09:00
nrslib
9e6e7e3550 update message 2026-02-22 02:27:47 +09:00
nrslib
cb0b7a04ca fix: resolve ensemble build type errors 2026-02-22 02:19:18 +09:00
nrslib
05865eb04e refactor: centralize ensemble manifest filename constant 2026-02-22 02:07:32 +09:00
nrslib
b6e3c7883d feat: implement ensemble package import and faceted layout 2026-02-22 02:05:48 +09:00
Tomohisa Takaoka
2e72054c0d fix: use plural 'takt-worktrees' as default clone directory name
The default clone base directory was 'takt-worktree' (singular), which is
inconsistent since multiple worktrees are created inside it.

Changed to 'takt-worktrees' (plural) while maintaining backward compatibility:
- If existing 'takt-worktree' directory exists, continue using it
- New installations will use 'takt-worktrees'
- Explicit worktree_dir config always takes priority
2026-02-21 08:47:42 -08:00
nrslib
75ce583d0b fix: イテレーション入力待ち中のpoll_tickログ連続出力を抑制
入力待ちフラグ(enterInputWait/leaveInputWait)を導入し、
selectOption待ち中はワーカープールのポーリングログをスキップする。
入力完了で自動復活。
2026-02-20 23:42:38 +09:00
nrslib
291e05a24d fix: prevent romaji conversion stack overflow on long task names 2026-02-20 12:43:40 +09:00
nrslib
67f6fc685c fix: opencodeの2ターン目ハングを修正し会話継続を実現
streamAbortController.signalをcreateOpencodeに渡していたため、
各callのfinallyでabortするとサーバーが停止し2ターン目がハングしていた。
signalをサーバー起動から除外し、sessionIdの引き継ぎを復元することで
複数ターンの会話継続を実現した。
2026-02-20 12:40:17 +09:00
nrs
b9dfe93d85
takt: add-sync-with-root (#325) 2026-02-20 11:58:48 +09:00
nrs
dec77e069e
add-model-to-persona-providers (#324)
* takt: add-model-to-persona-providers

* refactor: loadConfigを廃止しresolveConfigValueにキー単位解決を一元化

loadConfig()による一括マージを廃止し、resolveConfigValue()でキーごとに
global/project/piece/envの優先順位を宣言的に解決する方式に移行。
providerOptionsの優先順位をglobal < piece < project < envに修正し、
sourceトラッキングでOptionsBuilderのマージ方向を制御する。
2026-02-20 11:12:46 +09:00
nrslib
22901cd8cb feat: analyticsをproject設定とenv overrideに対応 2026-02-20 08:37:40 +09:00
nrslib
f479869d72 fix: retryタスクのcompleted_atクリア漏れを修正
startReExecutionで失敗タスクをrunningに戻す際、
completed_atをnullにリセットしていなかったためZodバリデーションエラーが発生していた。
2026-02-20 07:40:59 +09:00
nrs
4f8255d509
takt: add-draft-pr-option (#323) 2026-02-20 00:35:41 +09:00
nrs
5960a0d212
takt: add-all-delete-option (#322) 2026-02-20 00:29:07 +09:00
nrslib
2926785c2c fix: retryコマンドの有効範囲と案内文を修正 2026-02-19 23:28:39 +09:00
nrs
e70bceb4a8
takt: extend-slack-task-notification (#316) 2026-02-19 23:08:17 +09:00
nrslib
3c319d612d 未使用import削除とclaude-agent-sdk更新
未使用のloadPersonaSessions、EXIT_SIGINT、hasPreviousOrder変数を削除。
claude-agent-sdkを0.2.47に更新。saveTaskFileテストにsummarize mockを追加。
2026-02-19 21:22:08 +09:00
nrslib
743344a51b 既存PRへのコメント追加に対応し、PR重複作成を防止
タスク再実行時に同じブランチのPRが既に存在する場合、新規作成ではなく
既存PRにコメントを追加するようにした。
2026-02-19 21:21:59 +09:00
nrslib
a8adfdd02a リトライ時のムーブメント選択で失敗箇所にカーソルを初期配置する
selectOption → selectOptionWithDefault に変更し、前回失敗したムーブメントが
デフォルト選択されるようにした。Enter一発で失敗箇所から再開できる。
2026-02-19 20:08:14 +09:00
nrslib
391e56b51a resolve conflict 2026-02-19 19:52:11 +09:00
nrs
6371b8f3b1
takt: task-1771451707814 (#314) 2026-02-19 19:51:18 +09:00
nrslib
0441ba55d1 Merge branch 'develop' into takt/308/improve-retry-instruct-interac 2026-02-19 17:34:39 +09:00
nrs
340996c57e
takt: task-1771426242274 (#311) 2026-02-19 17:32:11 +09:00
nrs
43f6fa6ade
takt: takt-list (#310) 2026-02-19 17:20:22 +09:00
nrs
80a79683ac
github-issue-304-builtin (#309)
* takt: github-issue-304-builtin

* ピース選択UIから「also in」表示を削除
2026-02-19 17:14:07 +09:00