174 Commits

Author SHA1 Message Date
nrs
9ba05d8598
[#395] github-issue-395-add-pull-from (#397)
* takt: github-issue-395-add-pull-from

* ci: trigger CI checks

* fix: taskDiffActions のコンフリクトマーカーを解消

origin/main でリネームされた「Merge from root」ラベル(PR #394)と、
このPR (#395) で追加した「Pull from remote」行を統合する。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* ci: trigger CI checks

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: masanobu-naruse <m_naruse@codmon.co.jp>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 14:13:06 +09:00
Yuma Satake
e77cb50ac1
feat: インタラクティブモードのスラッシュコマンドを行末でも認識可能にする (#406)
- スラッシュコマンド検出ロジックを commandMatcher.ts に分離
- 行頭・行末の両方でコマンドを認識し、行中は無視する仕様を実装
- conversationLoop を早期リターン + switch ディスパッチにリファクタリング
- SlashCommand 定数を shared/constants に追加
- コマンドマッチングのユニットテスト36件を追加
- 行末コマンド・行中非認識のE2Eテスト6件を追加

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 12:59:26 +09:00
Junichi Kato
252c337456
fix: Global/ProjectのmodelがModelログに反映されない不具合を修正 (#417)
* test: add regression for movement model log fallback

* fix: use configured model for movement model logging
2026-02-28 12:54:32 +09:00
nrs
7494149e75
[#421] github-issue-421-feat-pr-opush (#422)
* takt: github-issue-421-feat-pr-opush

* docs: CONTRIBUTING のレビューモード説明を復元

--pr オプション追加に伴い削除されていたブランチモード・現在の差分モードの
ドキュメントを復元。コントリビューターはPR作成前にローカルでレビューする
ケースもあるため、全モードの記載が必要。

* fix: --pr でリモートブランチを fetch してからチェックアウト

他人のPRブランチはローカルに存在しないため、git fetch origin を
実行してからチェックアウトするように修正。また baseBranch を返す
ようにして --auto-pr 併用時の問題も解消。

* refactor: routing の排他条件を if/else に整理、不要なフォールバック削除

- routing.ts: prNumber の排他的分岐を if/else に統合
- pr.ts: data.body は string 型なので ?? '' フォールバックを削除
2026-02-28 12:53:35 +09:00
nrslib
644c318295 fix: unify agent provider/model resolution and remove custom agent overrides 2026-02-27 00:27:52 +09:00
nrs
551299dbf8
takt: github-issue-390-to-no-provide (#393) 2026-02-26 23:45:03 +09:00
nrs
deca6a2f3d
[#368] fix-broken-issue-title-session (#371)
* takt: fix-broken-issue-title-session

* takt: fix-broken-issue-title-session
2026-02-26 13:33:02 +09:00
nrs
61f0be34b5
Merge pull request #394 from nrslib/rename-sync-with-root
Rename 'Sync with root' to 'Merge from root'
2026-02-26 11:20:38 +09:00
nrslib
f6d8c353d3 refactor: provider のデフォルト値 'claude' を廃止し明示設定を必須化
暗黙の claude フォールバックを削除し、未設定時は明確なエラーを返すように変更。
permission は未設定時 readonly にフォールバック。テスト・E2E を新挙動に適合。
2026-02-26 02:11:49 +09:00
nrs
6d0bac9d07
[#367] abstract-git-provider (#375)
* takt: abstract-git-provider

* takt: abstract-git-provider

* takt: abstract-git-provider

* fix: pushBranch のインポートパスを infra/task に修正

Git provider 抽象化により pushBranch が infra/github から infra/task に
移動したため、taskSyncAction とテストのインポートパスを更新。
2026-02-26 01:09:29 +09:00
nrslib
e39792259e fix: --task でもワークツリー作成時は tasks.yaml に記録する
--task オプションで skipTaskList=true になるが、ワークツリー作成時は
takt list でのブランチ管理に必要なためタスク記録を保存する。
2026-02-26 00:55:24 +09:00
nrslib
9f15840d63 refactor: sync with root をピースエンジンから単発エージェント呼び出しに変更
- executeTask(フルピースエンジン)→ Provider 抽象経由の単発エージェント呼び出しに簡素化
- Claude 固定の callClaudeCustom → getProvider() による Provider 抽象化
- permissionMode: 'full' → 'edit' + onPermissionRequest で Bash 自動承認
- コンフリクト解決プロンプトをテンプレートファイル(en/ja)に分離
- sync 後に worktree → project → origin の2段階プッシュを追加
2026-02-26 00:33:33 +09:00
Yuma Satake
6a175bcb11
Merge pull request #377 from Yuma-Satake/feature/issue-111
Fix #111 Issue作成時にラベルを選択できるようにする
2026-02-25 23:48:36 +09:00
nrslib
6bea78adb4 fix: lineEditor のサロゲートペア対応と Ctrl+J 改行挿入を追加 2026-02-24 23:51:07 +09:00
武田 憲太郎
61959f66a9 feat: AskUserQuestion 対応 (#161) 2026-02-23 15:24:10 +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
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
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
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
nrslib
75ce583d0b fix: イテレーション入力待ち中のpoll_tickログ連続出力を抑制
入力待ちフラグ(enterInputWait/leaveInputWait)を導入し、
selectOption待ち中はワーカープールのポーリングログをスキップする。
入力完了で自動復活。
2026-02-20 23:42:38 +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
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
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
nrs
99aa22d250
takt: github-issue-259-debug-takt (#312) 2026-02-19 16:57:24 +09:00
nrslib
54001b5122 takt: instruct 2026-02-19 13:16:47 +09:00