claude-task-worker 0.94.0 → 0.95.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.
Files changed (2) hide show
  1. package/dist/index.js +12 -20
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -3243,7 +3243,8 @@ async function removeStaleWorktrees() {
3243
3243
  }
3244
3244
 
3245
3245
  // src/workers/issue-worker.ts
3246
- var LABEL_TRIAGE_SCOPE = "cc-triage-scope";
3246
+ var STICKY_LABELS = ["cc-triage-scope", "cc-issue-created"];
3247
+ var consumableTriggerLabels = (triggerLabels) => triggerLabels.filter((label) => !STICKY_LABELS.includes(label));
3247
3248
  var PREFLIGHT_SEARCH_LIMIT = 5;
3248
3249
  function createIssuePollingWorker(config) {
3249
3250
  return async () => {
@@ -3289,7 +3290,6 @@ function createIssuePollingWorker(config) {
3289
3290
  continue;
3290
3291
  }
3291
3292
  }
3292
- const hadTriageScope = issue.labels.some((l) => l.name === LABEL_TRIAGE_SCOPE);
3293
3293
  await addLabel("issue", issue.number, "cc-in-progress");
3294
3294
  const worktreeId = generateWorktreeName();
3295
3295
  try {
@@ -3325,18 +3325,11 @@ function createIssuePollingWorker(config) {
3325
3325
  worktreeId,
3326
3326
  async (status, output) => {
3327
3327
  lastCompletionAt = Date.now();
3328
- for (const label of config.triggerLabels) {
3328
+ for (const label of consumableTriggerLabels(config.triggerLabels)) {
3329
3329
  await removeLabel("issue", issue.number, label).catch(
3330
3330
  (err) => console.error(`[${config.name}] removeLabel ${label} failed for #${issue.number}: ${err}`)
3331
3331
  );
3332
3332
  }
3333
- if (hadTriageScope) {
3334
- await addLabel("issue", issue.number, LABEL_TRIAGE_SCOPE).catch(
3335
- (err) => console.error(
3336
- `[${config.name}] addLabel ${LABEL_TRIAGE_SCOPE} failed for #${issue.number}: ${err}`
3337
- )
3338
- );
3339
- }
3340
3333
  try {
3341
3334
  if (status === "completed") {
3342
3335
  const verified = await config.onCompleted?.(issue.number, worktreeId, output) ?? true;
@@ -3443,7 +3436,7 @@ var execIssueWorker = (opts = {}) => createIssuePollingWorker({
3443
3436
 
3444
3437
  // src/workers/pr-worker.ts
3445
3438
  var LABEL_IN_PROGRESS = "cc-in-progress";
3446
- var LABEL_TRIAGE_SCOPE2 = "cc-triage-scope";
3439
+ var LABEL_TRIAGE_SCOPE = "cc-triage-scope";
3447
3440
  function createPrPollingWorker(config) {
3448
3441
  return async () => {
3449
3442
  const { owner, name, defaultBranch } = await getRepoInfo();
@@ -3465,7 +3458,7 @@ function createPrPollingWorker(config) {
3465
3458
  if (isRunning(pr.number)) continue;
3466
3459
  if (isWorkerAtCapacity(config.name)) break;
3467
3460
  const prUrl = `https://github.com/${owner}/${name}/pull/${pr.number}`;
3468
- const hadTriageScope = pr.labels.some((l) => l.name === LABEL_TRIAGE_SCOPE2);
3461
+ const hadTriageScope = pr.labels.some((l) => l.name === LABEL_TRIAGE_SCOPE);
3469
3462
  await addLabel("pr", pr.number, LABEL_IN_PROGRESS);
3470
3463
  const worktreeId = generateWorktreeName();
3471
3464
  try {
@@ -3521,9 +3514,9 @@ function createPrPollingWorker(config) {
3521
3514
  );
3522
3515
  }
3523
3516
  if (hadTriageScope) {
3524
- await addLabel("pr", pr.number, LABEL_TRIAGE_SCOPE2).catch(
3517
+ await addLabel("pr", pr.number, LABEL_TRIAGE_SCOPE).catch(
3525
3518
  (err) => console.error(
3526
- `[${config.name}] addLabel ${LABEL_TRIAGE_SCOPE2} failed for PR #${pr.number}: ${err}`
3519
+ `[${config.name}] addLabel ${LABEL_TRIAGE_SCOPE} failed for PR #${pr.number}: ${err}`
3527
3520
  )
3528
3521
  );
3529
3522
  }
@@ -3642,10 +3635,9 @@ var triageCreatedIssueWorker = (opts = {}) => createIssuePollingWorker({
3642
3635
  "cc-ui-design-pr-created"
3643
3636
  ],
3644
3637
  epicFilters: opts.epicFilters,
3645
- labelFilters: opts.labelFilters,
3646
- onCompleted: async (issueNumber) => {
3647
- await addLabel("issue", issueNumber, "cc-issue-created");
3648
- }
3638
+ labelFilters: opts.labelFilters
3639
+ // トリガーラベルはどちらも STICKY_LABELS なのでワーカーが外さない。
3640
+ // 完了時に付け直す必要はない。
3649
3641
  })();
3650
3642
 
3651
3643
  // src/workers/triage-pr.ts
@@ -3981,7 +3973,7 @@ import { execFile as execFile3 } from "node:child_process";
3981
3973
  import { promisify as promisify4 } from "node:util";
3982
3974
  var execFileAsync3 = promisify4(execFile3);
3983
3975
  var CONFIG_FILE = "claude-task-worker.json";
3984
- var LABEL_TRIAGE_SCOPE3 = "cc-triage-scope";
3976
+ var LABEL_TRIAGE_SCOPE2 = "cc-triage-scope";
3985
3977
  function lastRunBranchName(workerName) {
3986
3978
  return `ctw-last-run-${workerName}`;
3987
3979
  }
@@ -4028,7 +4020,7 @@ async function publishLastRunPr(workerName, defaultBranch, at) {
4028
4020
  branch,
4029
4021
  lastRunPrTitle(workerName),
4030
4022
  lastRunPrBody(workerName, at),
4031
- { labels: [LABEL_TRIAGE_SCOPE3], assignee: await getCurrentUser() }
4023
+ { labels: [LABEL_TRIAGE_SCOPE2], assignee: await getCurrentUser() }
4032
4024
  );
4033
4025
  console.log(`[${workerName}] opened lastRun PR #${prNumber}`);
4034
4026
  } finally {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-task-worker",
3
- "version": "0.94.0",
3
+ "version": "0.95.0",
4
4
  "description": "CLI tool that polls GitHub Issues/PRs and delegates work to Claude CLI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",