run: --phases does not suppress the UI-label test phase (determinePhasesForIssue adds it to an explicit list)
メンテナーはふだん 1 日以内に返信
関連するプルリクエストがすでにマージされています。
- #1659 @admarble による — マージ済み
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 72/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
- 領域
- cli
調査の方向性
バグは src/lib/workflow/phase-mapper.ts の determinePhasesForIssue にあります。その末尾のブロックは、hasUILabels(labels) が真であれば、明示的な --phases リストが指定されていても test を追加します。batch-executor.ts の runIssueWithLogging の明示的な分岐からの呼び出しを追跡し、config-resolver.ts で autoDetectPhases がどのように設定されているかを確認してください。フロントエンドのラベルが付いた issue に対して --phases spec を実行したときにテストフェーズが実行されず、--testgen と --security-review は引き続きそれぞれのフェーズを追加すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
What happens
sequant run 930 --phases spec ran a test phase after spec. The cause is not the spec marker (first guess, corrected after reading the code): determinePhasesForIssue in src/lib/workflow/phase-mapper.ts appends test whenever hasUILabels(labels) is true, and it runs on the explicit --phases list too. #930 carries the frontend label; the other three issues in the batch do not and ran spec only.
Evidence (sequant 2.20.0, admarble/matcha-maps)
Run header:
Phases spec
Mode parallel (concurrency: 1)
Issues #1101, #1019, #929, #930
For #930 only (labels: frontend, planned, performance):
[23:34:14] ✔ #930 spec 55s
[23:34:14] ▸ #930 test
...
**Summary:** 0/1 tests passed. AC-7, the only browser test, is BLOCKED because the feature isn't implemented on this branch.
[23:34:47] ✔ #930 test 33s
#930 ✔ passed spec → test
Code path (dist 2.20.0): config-resolver.ts sets autoDetectPhases = !cliOptions.phases && settings.run.autoDetectPhases, so label detection is correctly off. But batch-executor.ts runIssueWithLogging then takes the explicit branch, "Use explicit phases with adjustments", and calls determinePhasesForIssue(config.phases, labels, options), whose last block is:
// Auto-detect UI issues and add test phase
if (hasUILabels(labels) && !phases.includes("test")) { ... phases.push("test"); }
That block ignores whether the phase list was explicit. The same function also honours --testgen and --security-review, which are flags the user passed, so those two adjustments are expected; the label one is not.
Why it matters
A coordinator that runs spec batches to compare file lists before picking a wave expects spec-only cost and no implementation-side phases. Here the extra phase was cheap (33 s, a blocked result) but it posted test output against an unimplemented branch and would have run a browser test had one been possible. The earlier label case (an unrequested test phase on #857 in a spec-only batch) was the same block; passing --phases explicitly was adopted as the workaround and does not work for this path.
Ask
In determinePhasesForIssue, skip the UI-label test insertion when the phase list came from --phases (for example, pass options.autoDetectPhases or an explicit flag and gate the block on it), or move that block into detectPhasesFromLabels where the other label logic lives. A Phases adjusted: log line is printed today, so the behaviour is visible, but a user who wrote --phases spec did not ask for test.
- 主要言語
- TypeScript
- スター
- 1
- フォーク
- 1
- 平均マージ
- 10時間 59分
- マージ済み PR(30日)
- 86
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
sequant-io/sequant のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
sequant-io/sequant#1665 ·
メンテナーはふだん 1 日以内に返信
-
fix(assess): minimal-flags rule still assumes a ui label adds the test phase (stale after #1649)オープン
難易度 1/5 1〜3時間 初心者へのやさしさ 87/100
sequant-io/sequant#1662 ·
メンテナーはふだん 1 日以内に返信
-
graph-2026-11-simplify
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
sequant-io/sequant#1650 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
sequant-io/sequant#1601 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
sequant-io/sequant#1582 ·
メンテナーはふだん 1 日以内に返信
sequant-io/sequant の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
prime-radiant-inc/evener#5901 ·
メンテナーはふだん 1 日以内に返信
-
bug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
Bug: Batcher binds the texture that opens a new batch twice (one draw call per element with maxBatchableTextures = 1)対応中かも @darzarzycki が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
メンテナーはふだん 2 日以内に返信
-
area:study-data p2-high ready-for-agent type:chore
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
fderuiter/deruiter.dev#3706 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
nicobailon/pi-subagents#3242 ·
メンテナーはふだん 1 日以内に返信