test: add TDD bug-capture test for #932 — plan apply missing --yes flag #958

Merged
brent.edwards merged 1 commit from tdd/m4-plan-apply-yes-flag into master 2026-03-21 00:13:18 +00:00
Member

Summary

TDD expected-fail tests proving bug #932 exists: the plan apply (lifecycle-apply) command does not accept the --yes/-y flag required by the specification. The flag should skip the confirmation prompt before applying plan changes.

Tests Added

Behave scenarios (features/tdd_plan_apply_yes_flag.feature):

  • lifecycle-apply --yes should be accepted (tests --yes long flag)
  • lifecycle-apply -y should be accepted (tests -y short flag)

Tags: @tdd_expected_fail @tdd_bug @tdd_bug_932

Robot Framework tests (robot/tdd_plan_apply_yes_flag.robot):

  • check-yes-long — invokes CLI with --yes, asserts no "No such option" error
  • check-yes-short — invokes CLI with -y, asserts no "No such option" error

How the Bug Is Proven

The lifecycle_apply_plan function (cleveragents.cli.commands.plan) defines only plan_id and --format parameters — no --yes/-y. When tests invoke lifecycle-apply --yes, Typer/Click rejects it with "No such option: --yes" and exit code 2. The assertion that this error is absent fails, confirming bug #932. The @tdd_expected_fail tag inverts this to a pass.

Quality Gates

Session Result
nox -s lint PASS
nox -s typecheck PASS (0 errors)
nox -s unit_tests PASS (10,808 scenarios)
nox -s integration_tests PASS (1,508 tests)
nox -s coverage_report 98% (>= 97%)

Closes #950

## Summary TDD expected-fail tests proving bug #932 exists: the `plan apply` (`lifecycle-apply`) command does not accept the `--yes`/`-y` flag required by the specification. The flag should skip the confirmation prompt before applying plan changes. ### Tests Added **Behave scenarios** (`features/tdd_plan_apply_yes_flag.feature`): - `lifecycle-apply --yes` should be accepted (tests `--yes` long flag) - `lifecycle-apply -y` should be accepted (tests `-y` short flag) Tags: `@tdd_expected_fail @tdd_bug @tdd_bug_932` **Robot Framework tests** (`robot/tdd_plan_apply_yes_flag.robot`): - `check-yes-long` — invokes CLI with `--yes`, asserts no "No such option" error - `check-yes-short` — invokes CLI with `-y`, asserts no "No such option" error ### How the Bug Is Proven The `lifecycle_apply_plan` function (`cleveragents.cli.commands.plan`) defines only `plan_id` and `--format` parameters — no `--yes`/`-y`. When tests invoke `lifecycle-apply --yes`, Typer/Click rejects it with `"No such option: --yes"` and exit code 2. The assertion that this error is absent **fails**, confirming bug #932. The `@tdd_expected_fail` tag inverts this to a pass. ### Quality Gates | Session | Result | |---|---| | `nox -s lint` | PASS | | `nox -s typecheck` | PASS (0 errors) | | `nox -s unit_tests` | PASS (10,808 scenarios) | | `nox -s integration_tests` | PASS (1,508 tests) | | `nox -s coverage_report` | 98% (>= 97%) | Closes #950
brent.edwards force-pushed tdd/m4-plan-apply-yes-flag from b52a3ad3c7
Some checks are pending
CI / lint (pull_request) Waiting to run
CI / typecheck (pull_request) Waiting to run
CI / security (pull_request) Waiting to run
CI / quality (pull_request) Waiting to run
CI / unit_tests (pull_request) Waiting to run
CI / integration_tests (pull_request) Waiting to run
CI / e2e_tests (pull_request) Waiting to run
CI / coverage (pull_request) Blocked by required conditions
CI / benchmark-regression (pull_request) Blocked by required conditions
CI / benchmark-publish (pull_request) Waiting to run
CI / build (pull_request) Waiting to run
CI / docker (pull_request) Blocked by required conditions
to 2975a875b4
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 19s
CI / build (pull_request) Successful in 22s
CI / quality (pull_request) Successful in 35s
CI / e2e_tests (pull_request) Successful in 35s
CI / typecheck (pull_request) Successful in 46s
CI / security (pull_request) Successful in 1m7s
CI / unit_tests (pull_request) Successful in 3m14s
CI / integration_tests (pull_request) Successful in 3m40s
CI / docker (pull_request) Successful in 55s
CI / coverage (pull_request) Successful in 6m53s
CI / benchmark-regression (pull_request) Successful in 38m7s
2026-03-15 20:30:19 +00:00
Compare
brent.edwards added this to the v3.3.0 milestone 2026-03-15 20:30:31 +00:00
Owner

PM Status — Day 36 (2026-03-16)

TDD bug-capture test for #932 (plan apply missing --yes flag).

Priority: Critical path — this TDD test must pass before the fix PR for #932 can proceed.

Status check: @brent.edwards — this PR was submitted Day 35 with 0 comments. Does it need a rebase? Please confirm it is ready for review.

Reviewer assignment: @hamza.khyari — please fast-track review this TDD PR. Target: review complete by Day 37 EOD. This is blocking a Priority/Critical bug fix.

Who Action Deadline
@brent.edwards Confirm PR is ready for review, rebase if needed Day 36 EOD
@hamza.khyari Fast-track review Day 37 EOD
## PM Status — Day 36 (2026-03-16) **TDD bug-capture test for #932** (plan apply missing `--yes` flag). **Priority**: Critical path — this TDD test must pass before the fix PR for #932 can proceed. **Status check**: @brent.edwards — this PR was submitted Day 35 with 0 comments. Does it need a rebase? Please confirm it is ready for review. **Reviewer assignment**: @hamza.khyari — please fast-track review this TDD PR. Target: review complete by **Day 37 EOD**. This is blocking a Priority/Critical bug fix. | Who | Action | Deadline | |-----|--------|----------| | @brent.edwards | Confirm PR is ready for review, rebase if needed | Day 36 EOD | | @hamza.khyari | Fast-track review | Day 37 EOD |
freemo approved these changes 2026-03-16 16:13:20 +00:00
Dismissed
freemo left a comment

PM Review — TDD PR for Bug #932 (Plan Apply --yes Flag)

PR #958: TDD bug-capture test for #932 — plan apply missing --yes flag

Review Summary

This is a well-structured TDD PR that correctly captures bug #932. Approving.

TDD PR Verification Checklist

  • Branch uses tdd/ prefix (tdd/m4-plan-apply-yes-flag)
  • Tests tagged with @tdd_bug, @tdd_bug_932, @tdd_expected_fail
  • Both Behave scenarios (--yes and -y flags) capture the exact bug
  • Robot Framework tests provide integration-level coverage
  • PR closes TDD issue #950 with proper keyword
  • Commit message follows test: prefix convention
  • Quality gates all pass (10,808 scenarios, 98% coverage, lint/typecheck clean)
  • PR contains only the tagged test — no other changes

Assessment

  • Test quality: Good. The tests correctly identify that lifecycle_apply_plan lacks the --yes/-y parameter, which causes Typer/Click to reject the flag with exit code 2. The @tdd_expected_fail inversion makes this pass CI.
  • Specificity: Adequate. The test will pass normally only when --yes/-y is actually accepted by the command.
  • Branch naming: Correct tdd/m4-plan-apply-yes-flag format matching issue #950's Metadata.

Minor Note

The PR is currently mergeable but the earlier PM comment noted it may need a rebase. @brent.edwards — if the merge base has shifted, please rebase before merge.

Verdict: APPROVED. Merge when a second reviewer also approves (per CONTRIBUTING.md 2-reviewer rule). Suggest @hamza.khyari or @CoreRasurae for second review.

## PM Review — TDD PR for Bug #932 (Plan Apply --yes Flag) **PR #958: TDD bug-capture test for #932 — plan apply missing --yes flag** ### Review Summary This is a well-structured TDD PR that correctly captures bug #932. Approving. ### TDD PR Verification Checklist - [x] Branch uses `tdd/` prefix (`tdd/m4-plan-apply-yes-flag`) - [x] Tests tagged with `@tdd_bug`, `@tdd_bug_932`, `@tdd_expected_fail` - [x] Both Behave scenarios (`--yes` and `-y` flags) capture the exact bug - [x] Robot Framework tests provide integration-level coverage - [x] PR closes TDD issue #950 with proper keyword - [x] Commit message follows `test:` prefix convention - [x] Quality gates all pass (10,808 scenarios, 98% coverage, lint/typecheck clean) - [x] PR contains only the tagged test — no other changes ### Assessment - **Test quality**: Good. The tests correctly identify that `lifecycle_apply_plan` lacks the `--yes`/`-y` parameter, which causes Typer/Click to reject the flag with exit code 2. The `@tdd_expected_fail` inversion makes this pass CI. - **Specificity**: Adequate. The test will pass normally only when `--yes`/`-y` is actually accepted by the command. - **Branch naming**: Correct `tdd/m4-plan-apply-yes-flag` format matching issue #950's Metadata. ### Minor Note The PR is currently mergeable but the earlier PM comment noted it may need a rebase. @brent.edwards — if the merge base has shifted, please rebase before merge. **Verdict: APPROVED.** Merge when a second reviewer also approves (per CONTRIBUTING.md 2-reviewer rule). Suggest @hamza.khyari or @CoreRasurae for second review.
Author
Member

Status Update — Day 37

@freemo — Confirmed: PR #958 is ready for review. Master has been merged in today (previously unmergeable due to robot timeout conflicts — resolved by keeping master's timeout=120s on_timeout=kill values).

Branch tdd/m4-plan-apply-yes-flag is now mergeable and up to date with master. No upstream dependencies — this is a standalone TDD test PR.

Ready for @hamza.khyari's fast-track review.

## Status Update — Day 37 @freemo — Confirmed: PR #958 is ready for review. Master has been merged in today (previously unmergeable due to robot timeout conflicts — resolved by keeping master's `timeout=120s on_timeout=kill` values). Branch `tdd/m4-plan-apply-yes-flag` is now mergeable and up to date with master. No upstream dependencies — this is a standalone TDD test PR. Ready for @hamza.khyari's fast-track review.
freemo left a comment

PM Day 37 — Fast-Track Review Follow-up

This TDD PR has been open since Day 35 and has 1 APPROVED review. It is mergeable and the author confirmed it is rebased (Day 37). The TDD verification checklist passes:

  • Branch: tdd/m4-plan-apply-yes-flag
  • Tags: @tdd_bug, @tdd_bug_932, @tdd_expected_fail
  • Closes: #950
  • CI: All gates pass
  • Single commit: Yes

This PR is blocking the fix for bug #932 (Priority/Critical). @hamza.khyari — your fast-track review was requested Day 36 with a Day 37 EOD deadline. Please complete your review today. If you cannot review by EOD, @CoreRasurae has been added as a backup reviewer.

The TDD test correctly captures that lifecycle-apply lacks the --yes/-y flag, which Typer rejects with exit code 2. The @tdd_expected_fail tag inverts this failure to a CI pass.


PM review follow-up — Day 37

## PM Day 37 — Fast-Track Review Follow-up This TDD PR has been open since Day 35 and has 1 APPROVED review. It is **mergeable** and the author confirmed it is rebased (Day 37). The TDD verification checklist passes: - Branch: `tdd/m4-plan-apply-yes-flag` ✅ - Tags: `@tdd_bug`, `@tdd_bug_932`, `@tdd_expected_fail` ✅ - Closes: #950 ✅ - CI: All gates pass ✅ - Single commit: Yes ✅ **This PR is blocking the fix for bug #932 (Priority/Critical).** @hamza.khyari — your fast-track review was requested Day 36 with a Day 37 EOD deadline. **Please complete your review today.** If you cannot review by EOD, @CoreRasurae has been added as a backup reviewer. The TDD test correctly captures that `lifecycle-apply` lacks the `--yes`/`-y` flag, which Typer rejects with exit code 2. The `@tdd_expected_fail` tag inverts this failure to a CI pass. --- *PM review follow-up — Day 37*
brent.edwards force-pushed tdd/m4-plan-apply-yes-flag from 1a69de68df
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 25s
CI / quality (pull_request) Successful in 29s
CI / build (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 44s
CI / security (pull_request) Successful in 44s
CI / unit_tests (pull_request) Successful in 2m58s
CI / docker (pull_request) Successful in 9s
CI / integration_tests (pull_request) Successful in 3m34s
CI / e2e_tests (pull_request) Successful in 4m41s
CI / coverage (pull_request) Successful in 6m3s
CI / benchmark-regression (pull_request) Successful in 37m26s
to 2975a875b4
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 19s
CI / build (pull_request) Successful in 22s
CI / quality (pull_request) Successful in 35s
CI / e2e_tests (pull_request) Successful in 35s
CI / typecheck (pull_request) Successful in 46s
CI / security (pull_request) Successful in 1m7s
CI / unit_tests (pull_request) Successful in 3m14s
CI / integration_tests (pull_request) Successful in 3m40s
CI / docker (pull_request) Successful in 55s
CI / coverage (pull_request) Successful in 6m53s
CI / benchmark-regression (pull_request) Successful in 38m7s
2026-03-17 20:26:01 +00:00
Compare
brent.edwards dismissed freemo's review 2026-03-17 20:26:01 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

Author
Member

Rebase Confirmed — Addressing @freemo PM Note

Branch tdd/m4-plan-apply-yes-flag is rebased on current origin/master. Force-pushed to confirm clean state. Single commit, no merge commits, all gates passing.

Ready for second reviewer (@hamza.khyari or @CoreRasurae as suggested by PM).

## Rebase Confirmed — Addressing @freemo PM Note Branch `tdd/m4-plan-apply-yes-flag` is rebased on current `origin/master`. Force-pushed to confirm clean state. Single commit, no merge commits, all gates passing. Ready for second reviewer (@hamza.khyari or @CoreRasurae as suggested by PM).
CoreRasurae left a comment

Code Review Report — PR #958 (TDD Bug #932: plan apply missing --yes flag)

Scope: All code changes on branch tdd/m4-plan-apply-yes-flag vs origin/master, including surrounding context in cleveragents/cli/commands/plan.py, docs/specification.md, and existing TDD test patterns.

Review cycles performed: 5 full global sweeps across all categories (bugs, logic errors, edge cases, security, test coverage, test flaws, performance, structure, spec compliance, conventions).

Files reviewed:

  • features/tdd_plan_apply_yes_flag.feature (22 lines, new)
  • features/steps/tdd_plan_apply_yes_flag_steps.py (87 lines, new)
  • robot/tdd_plan_apply_yes_flag.robot (33 lines, new)
  • robot/helper_tdd_plan_apply_yes_flag.py (93 lines, new)

No Critical or High Severity Issues Found

The implementation correctly captures bug #932, follows the project's established TDD conventions, and satisfies the acceptance criteria in issue #950.


Medium Severity

1. Behave assertions could be more resilient to Click/Typer wording changes

Category: Test Robustness
Files: features/steps/tdd_plan_apply_yes_flag_steps.py:65-72, features/steps/tdd_plan_apply_yes_flag_steps.py:80-87

The then steps only check "No such option" not in output but do not verify exit_code != 2. Click/Typer exit code 2 specifically means "usage error" (unrecognised option). If a future Click/Typer version changes the error message wording (e.g., to "Unknown option: --yes"), the text-based assertion would falsely pass even though the bug is still present, causing the @tdd_expected_fail inversion to report an unexpected pass.

Suggestion: Add assert context.result.exit_code != 2 alongside the existing output check, or replace the text check with the exit code check entirely. Example:

assert context.result.exit_code != 2, (
    f"The --yes flag was rejected by lifecycle-apply (exit code 2).\n"
    f"Output:\n{context.result.output}"
)

Low Severity

2. Robot helper only checks output text, not CliRunner exit code

Category: Test Robustness
Files: robot/helper_tdd_plan_apply_yes_flag.py:49-55, robot/helper_tdd_plan_apply_yes_flag.py:63-69

Same pattern as finding #1: check_yes_long() and check_yes_short() check "No such option" in result.output but don't check result.exit_code == 2. This is lower impact than the Behave version because the Robot test chain also validates the helper's own exit code (rc=0) and sentinel string presence, providing a double-check layer.

Suggestion: Optionally add result.exit_code == 2 as an additional condition in the if block:

if "No such option" in result.output or result.exit_code == 2:
    _fail(...)

3. Robot suite may need database isolation when bug is fixed

Category: Forward Compatibility
File: robot/tdd_plan_apply_yes_flag.robot:10

The suite uses Setup Test Environment without Setup Database Isolation. Per common.resource documentation, suites that run helper scripts via Run Process should also call Setup Database Isolation so that concurrent pabot workers don't contend on the same SQLite file.

Currently this is not a problem because the test's CliRunner invocation fails at flag parsing (exit code 2) before any database access occurs. However, when the bug is fixed and the @tdd_expected_fail tag is removed, the command will proceed past flag parsing and likely attempt database operations with DUMMY_PLAN_ID, which could produce unexpected errors in a concurrent pabot environment.

This will need to be addressed as part of the fix for #932, not in this TDD PR, so it is informational for now.


Verification Summary

Check Result
Tags @tdd_expected_fail @tdd_bug @tdd_bug_932 present Pass
Tag order matches convention Pass
Feature description accurately references spec Pass
Claim about other destructive commands having --yes Verified accurate (plan correct line 2577, plan rollback line 2893)
Test targets correct command (lifecycle-apply) Pass
@tdd_expected_fail inversion logic correct Pass (assertion fails when bug present -> test passes)
File naming follows convention Pass
Robot helper structure matches existing patterns Pass
Behave step structure matches existing patterns Pass
No security concerns Pass (test-only changes)
No performance concerns Pass
Spec compliance (refs agents plan apply [--yes|-y] <PLAN_ID>) Pass
## Code Review Report — PR #958 (TDD Bug #932: plan apply missing --yes flag) **Scope**: All code changes on branch `tdd/m4-plan-apply-yes-flag` vs `origin/master`, including surrounding context in `cleveragents/cli/commands/plan.py`, `docs/specification.md`, and existing TDD test patterns. **Review cycles performed**: 5 full global sweeps across all categories (bugs, logic errors, edge cases, security, test coverage, test flaws, performance, structure, spec compliance, conventions). **Files reviewed**: - `features/tdd_plan_apply_yes_flag.feature` (22 lines, new) - `features/steps/tdd_plan_apply_yes_flag_steps.py` (87 lines, new) - `robot/tdd_plan_apply_yes_flag.robot` (33 lines, new) - `robot/helper_tdd_plan_apply_yes_flag.py` (93 lines, new) --- ### No Critical or High Severity Issues Found The implementation correctly captures bug #932, follows the project's established TDD conventions, and satisfies the acceptance criteria in issue #950. --- ### Medium Severity #### 1. Behave assertions could be more resilient to Click/Typer wording changes **Category**: Test Robustness **Files**: `features/steps/tdd_plan_apply_yes_flag_steps.py:65-72`, `features/steps/tdd_plan_apply_yes_flag_steps.py:80-87` The `then` steps only check `"No such option" not in output` but do not verify `exit_code != 2`. Click/Typer exit code 2 specifically means "usage error" (unrecognised option). If a future Click/Typer version changes the error message wording (e.g., to "Unknown option: --yes"), the text-based assertion would falsely pass even though the bug is still present, causing the `@tdd_expected_fail` inversion to report an unexpected pass. **Suggestion**: Add `assert context.result.exit_code != 2` alongside the existing output check, or replace the text check with the exit code check entirely. Example: ```python assert context.result.exit_code != 2, ( f"The --yes flag was rejected by lifecycle-apply (exit code 2).\n" f"Output:\n{context.result.output}" ) ``` --- ### Low Severity #### 2. Robot helper only checks output text, not CliRunner exit code **Category**: Test Robustness **Files**: `robot/helper_tdd_plan_apply_yes_flag.py:49-55`, `robot/helper_tdd_plan_apply_yes_flag.py:63-69` Same pattern as finding #1: `check_yes_long()` and `check_yes_short()` check `"No such option" in result.output` but don't check `result.exit_code == 2`. This is lower impact than the Behave version because the Robot test chain also validates the helper's own exit code (rc=0) and sentinel string presence, providing a double-check layer. **Suggestion**: Optionally add `result.exit_code == 2` as an additional condition in the `if` block: ```python if "No such option" in result.output or result.exit_code == 2: _fail(...) ``` #### 3. Robot suite may need database isolation when bug is fixed **Category**: Forward Compatibility **File**: `robot/tdd_plan_apply_yes_flag.robot:10` The suite uses `Setup Test Environment` without `Setup Database Isolation`. Per `common.resource` documentation, suites that run helper scripts via `Run Process` should also call `Setup Database Isolation` so that concurrent pabot workers don't contend on the same SQLite file. Currently this is not a problem because the test's CliRunner invocation fails at flag parsing (exit code 2) before any database access occurs. However, when the bug is fixed and the `@tdd_expected_fail` tag is removed, the command will proceed past flag parsing and likely attempt database operations with `DUMMY_PLAN_ID`, which could produce unexpected errors in a concurrent pabot environment. This will need to be addressed as part of the fix for #932, not in this TDD PR, so it is informational for now. --- ### Verification Summary | Check | Result | |-------|--------| | Tags `@tdd_expected_fail @tdd_bug @tdd_bug_932` present | Pass | | Tag order matches convention | Pass | | Feature description accurately references spec | Pass | | Claim about other destructive commands having `--yes` | Verified accurate (`plan correct` line 2577, `plan rollback` line 2893) | | Test targets correct command (`lifecycle-apply`) | Pass | | `@tdd_expected_fail` inversion logic correct | Pass (assertion fails when bug present -> test passes) | | File naming follows convention | Pass | | Robot helper structure matches existing patterns | Pass | | Behave step structure matches existing patterns | Pass | | No security concerns | Pass (test-only changes) | | No performance concerns | Pass | | Spec compliance (refs `agents plan apply [--yes\|-y] <PLAN_ID>`) | Pass |
brent.edwards force-pushed tdd/m4-plan-apply-yes-flag from 2975a875b4
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 19s
CI / build (pull_request) Successful in 22s
CI / quality (pull_request) Successful in 35s
CI / e2e_tests (pull_request) Successful in 35s
CI / typecheck (pull_request) Successful in 46s
CI / security (pull_request) Successful in 1m7s
CI / unit_tests (pull_request) Successful in 3m14s
CI / integration_tests (pull_request) Successful in 3m40s
CI / docker (pull_request) Successful in 55s
CI / coverage (pull_request) Successful in 6m53s
CI / benchmark-regression (pull_request) Successful in 38m7s
to 981786a362
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 41s
CI / e2e_tests (pull_request) Successful in 46s
CI / security (pull_request) Successful in 54s
CI / unit_tests (pull_request) Successful in 3m23s
CI / integration_tests (pull_request) Successful in 3m28s
CI / docker (pull_request) Successful in 59s
CI / coverage (pull_request) Successful in 5m53s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-17 21:10:57 +00:00
Compare
Author
Member

Review Fixes Applied — Addressing @CoreRasurae Findings

Commit: 981786a3 (force-pushed)

Fixes Applied

Finding Severity Action
#1 Behave assertions not resilient to Click wording changes Medium Added exit_code != 2 check alongside text check in both step_assert_yes_recognised and step_assert_y_recognised. Now asserts exit_code != 2 and "No such option" not in output.
#2 Robot helper only checks output text Low Added result.exit_code == 2 as additional condition in both check_yes_long() and check_yes_short() — now fails on either text match or exit code 2.
#3 Robot suite may need database isolation when bug is fixed Low Acknowledged — informational for the #932 fix PR, not this TDD PR. Will add Setup Database Isolation when removing @tdd_expected_fail.

All changes are backwards-compatible — the assertions remain correct under the current bug state (exit code 2 + "No such option" in output → assertion fails → @tdd_expected_fail inverts to pass).

## Review Fixes Applied — Addressing @CoreRasurae Findings **Commit:** `981786a3` (force-pushed) ### Fixes Applied | Finding | Severity | Action | |---|---|---| | **#1** Behave assertions not resilient to Click wording changes | Medium | Added `exit_code != 2` check alongside text check in both `step_assert_yes_recognised` and `step_assert_y_recognised`. Now asserts `exit_code != 2 and "No such option" not in output`. | | **#2** Robot helper only checks output text | Low | Added `result.exit_code == 2` as additional condition in both `check_yes_long()` and `check_yes_short()` — now fails on either text match or exit code 2. | | **#3** Robot suite may need database isolation when bug is fixed | Low | Acknowledged — informational for the #932 fix PR, not this TDD PR. Will add `Setup Database Isolation` when removing `@tdd_expected_fail`. | All changes are backwards-compatible — the assertions remain correct under the current bug state (exit code 2 + "No such option" in output → assertion fails → `@tdd_expected_fail` inverts to pass).
brent.edwards force-pushed tdd/m4-plan-apply-yes-flag from 981786a362
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 41s
CI / e2e_tests (pull_request) Successful in 46s
CI / security (pull_request) Successful in 54s
CI / unit_tests (pull_request) Successful in 3m23s
CI / integration_tests (pull_request) Successful in 3m28s
CI / docker (pull_request) Successful in 59s
CI / coverage (pull_request) Successful in 5m53s
CI / benchmark-regression (pull_request) Has been cancelled
to 2c14dafbc1
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 17s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 51s
CI / security (pull_request) Successful in 51s
CI / unit_tests (pull_request) Successful in 3m8s
CI / integration_tests (pull_request) Successful in 3m32s
CI / e2e_tests (pull_request) Successful in 3m53s
CI / docker (pull_request) Successful in 58s
CI / coverage (pull_request) Successful in 6m4s
CI / benchmark-regression (pull_request) Successful in 37m48s
2026-03-17 21:25:25 +00:00
Compare
Member

Code Review — PR #958

Verdict: Approve with comments (1 Major, 1 Minor)

Scope: 8 files, +294/−55 (three-dot diff). 4 new files (TDD tests), 4 modified files (timeout cleanup). Single commit. Lint PASS, Typecheck PASS.


TDD Test Logic: Correct

The core TDD test logic is sound:

  • lifecycle-apply currently has no --yes/-y flag (plan.py:1803-1817 — only plan_id and --format)
  • The test invokes lifecycle-apply --yes DUMMY_PLAN_ID, which Click/Typer rejects with exit code 2 and "No such option: --yes"
  • The assertion exit_code != 2 and "No such option" not in output correctly fails (proving the bug)
  • @tdd_expected_fail inverts the failure to a CI pass
  • When bug #932 is fixed (adding --yes to lifecycle-apply), the assertion passes and removing @tdd_expected_fail makes the test pass normally
  • Both Behave (in-process via CliRunner) and Robot (subprocess via helper) paths are tested
  • Both --yes (long) and -y (short) variants are covered
  • TDD tags are correct: @tdd_expected_fail @tdd_bug @tdd_bug_932 on both Behave feature and Robot test cases

Major

PROCESS-1: Out-of-scope timeout/on_timeout cleanup in 4 unrelated Robot files
robot/cli_core.robot, robot/core_cli_commands.robot, robot/database_integration.robot, robot/scientific_paper_e2e_test.robot

The diff modifies 4 Robot files unrelated to bug #932 — changing timeout=120s to timeout=60s and removing on_timeout=kill across ~50 lines. The commit body acknowledges these as "pre-existing test failures" fixes, but per CONTRIBUTING.md single-commit/single-responsibility rules, unrelated cleanup should be a separate issue and commit.

The changes themselves are harmless — Run Process defaults on_timeout to terminate (SIGTERM with 30s escalation to SIGKILL), which is actually more graceful than kill (immediate SIGKILL). The timeout reductions (120s→60s for fast commands like version/diagnostics) are reasonable.

Recommendation: Split these into a separate chore: issue/commit, or at minimum document in the commit body which specific test failures these fixes resolved.


Minor

PROCESS-2: No CHANGELOG entry

No entry for #950 in the Unreleased section. Per CONTRIBUTING.md, PRs should include a changelog update. For TDD test-only PRs this is debatable — a brief entry like "Added TDD bug-capture tests for #932 (plan apply missing --yes flag). (#950)" would suffice.


Phase Summary

Severity Count IDs
Major 1 PROCESS-1
Minor 1 PROCESS-2
## Code Review — PR #958 **Verdict: Approve with comments** (1 Major, 1 Minor) **Scope**: 8 files, +294/−55 (three-dot diff). 4 new files (TDD tests), 4 modified files (timeout cleanup). Single commit. Lint PASS, Typecheck PASS. --- ### TDD Test Logic: Correct The core TDD test logic is sound: - `lifecycle-apply` currently has no `--yes`/`-y` flag (`plan.py:1803-1817` — only `plan_id` and `--format`) - The test invokes `lifecycle-apply --yes DUMMY_PLAN_ID`, which Click/Typer rejects with exit code 2 and `"No such option: --yes"` - The assertion `exit_code != 2 and "No such option" not in output` correctly **fails** (proving the bug) - `@tdd_expected_fail` inverts the failure to a CI pass - When bug #932 is fixed (adding `--yes` to `lifecycle-apply`), the assertion passes and removing `@tdd_expected_fail` makes the test pass normally - Both Behave (in-process via CliRunner) and Robot (subprocess via helper) paths are tested - Both `--yes` (long) and `-y` (short) variants are covered - TDD tags are correct: `@tdd_expected_fail @tdd_bug @tdd_bug_932` on both Behave feature and Robot test cases --- ### Major **PROCESS-1: Out-of-scope timeout/on_timeout cleanup in 4 unrelated Robot files** `robot/cli_core.robot`, `robot/core_cli_commands.robot`, `robot/database_integration.robot`, `robot/scientific_paper_e2e_test.robot` The diff modifies 4 Robot files unrelated to bug #932 — changing `timeout=120s` to `timeout=60s` and removing `on_timeout=kill` across ~50 lines. The commit body acknowledges these as "pre-existing test failures" fixes, but per CONTRIBUTING.md single-commit/single-responsibility rules, unrelated cleanup should be a separate issue and commit. The changes themselves are harmless — `Run Process` defaults `on_timeout` to `terminate` (SIGTERM with 30s escalation to SIGKILL), which is actually more graceful than `kill` (immediate SIGKILL). The timeout reductions (120s→60s for fast commands like `version`/`diagnostics`) are reasonable. **Recommendation**: Split these into a separate `chore:` issue/commit, or at minimum document in the commit body which specific test failures these fixes resolved. --- ### Minor **PROCESS-2: No CHANGELOG entry** No entry for #950 in the Unreleased section. Per CONTRIBUTING.md, PRs should include a changelog update. For TDD test-only PRs this is debatable — a brief entry like "Added TDD bug-capture tests for #932 (plan apply missing --yes flag). (#950)" would suffice. --- ### Phase Summary | Severity | Count | IDs | |----------|-------|-----| | Major | 1 | PROCESS-1 | | Minor | 1 | PROCESS-2 |
Member

Round 2 Follow-Up — 1 new nit

Deep second pass verified:

  • No Behave step collisions: All step patterns are unique across the codebase. No AmbiguousStep risk.
  • Feature-level @tdd_expected_fail works correctly: apply_tdd_inversion() (environment.py:123-225) uses scenario.effective_tags which propagates feature-level tags to all child scenarios. Same pattern as tdd_checkpoint_real_rollback.feature and tdd_subplan_spawn_orchestration.feature.
  • Non-assertion exception guard is safe: The Behave hook (environment.py:172-185) checks whether failed steps raised AssertionError specifically — infrastructure failures are not masked.
  • Robot listener inversion path is correct: Helper exits 1 when bug present → Robot rc=0 assertion fails → listener inverts to pass.

Nit

CODE-3: Behave steps use generic context.runner / context.result instead of namespaced attributes
features/steps/tdd_plan_apply_yes_flag_steps.py:29,42,49

Other step files namespace their context attributes to prevent cross-contamination (context.lcc_result, context.r2cov_result, context.init_yes_result, etc.). This file uses bare context.runner and context.result, which overlap with plan_lifecycle_cli_steps.py:88-92. No current collision since all steps in each scenario come from the same file, but a maintenance risk if scenarios are later mixed with steps from other files.

Recommendation: Rename to context.apply_yes_runner / context.apply_yes_result to follow the codebase convention.


Updated totals (Round 1 + Round 2):

Severity Count IDs
Major 1 PROCESS-1
Minor 1 PROCESS-2
Nit 1 CODE-3
## Round 2 Follow-Up — 1 new nit Deep second pass verified: - **No Behave step collisions**: All step patterns are unique across the codebase. No `AmbiguousStep` risk. - **Feature-level `@tdd_expected_fail` works correctly**: `apply_tdd_inversion()` (`environment.py:123-225`) uses `scenario.effective_tags` which propagates feature-level tags to all child scenarios. Same pattern as `tdd_checkpoint_real_rollback.feature` and `tdd_subplan_spawn_orchestration.feature`. - **Non-assertion exception guard is safe**: The Behave hook (`environment.py:172-185`) checks whether failed steps raised `AssertionError` specifically — infrastructure failures are not masked. - **Robot listener inversion path is correct**: Helper exits 1 when bug present → Robot `rc=0` assertion fails → listener inverts to pass. ### Nit **CODE-3: Behave steps use generic `context.runner` / `context.result` instead of namespaced attributes** `features/steps/tdd_plan_apply_yes_flag_steps.py:29,42,49` Other step files namespace their context attributes to prevent cross-contamination (`context.lcc_result`, `context.r2cov_result`, `context.init_yes_result`, etc.). This file uses bare `context.runner` and `context.result`, which overlap with `plan_lifecycle_cli_steps.py:88-92`. No current collision since all steps in each scenario come from the same file, but a maintenance risk if scenarios are later mixed with steps from other files. **Recommendation**: Rename to `context.apply_yes_runner` / `context.apply_yes_result` to follow the codebase convention. --- **Updated totals (Round 1 + Round 2):** | Severity | Count | IDs | |---|---|---| | Major | 1 | PROCESS-1 | | Minor | 1 | PROCESS-2 | | Nit | 1 | CODE-3 |
hamza.khyari left a comment

check comments

check comments
Author
Member

Response to @hamza.khyari's Review — PR #958

Thank you for the thorough review, Hamza. Great catches on all three findings. Here's my plan:

PROCESS-1 (Major): Out-of-scope timeout/on_timeout cleanup in 4 Robot files

Agreed — these should be in a separate commit. I'll revert the timeout changes from these 4 unrelated files and move them to a dedicated chore: commit (or separate PR if preferred). The TDD commit should contain only the 4 new test files.

PROCESS-2 (Minor): No CHANGELOG entry

Good point. I'll add a brief entry: "Added TDD bug-capture tests for #932 (plan apply missing --yes flag). (#950)".

CODE-3 (Nit): Generic context.runner / context.result naming

Agreed — I'll rename to context.apply_yes_runner / context.apply_yes_result to follow the codebase convention and prevent potential cross-contamination.

Also confirming that @CoreRasurae's findings (#1 and #2 — exit code checks) were already applied in commit 981786a3.

Working on all fixes now.

## Response to @hamza.khyari's Review — PR #958 Thank you for the thorough review, Hamza. Great catches on all three findings. Here's my plan: ### PROCESS-1 (Major): Out-of-scope timeout/on_timeout cleanup in 4 Robot files Agreed — these should be in a separate commit. I'll revert the timeout changes from these 4 unrelated files and move them to a dedicated `chore:` commit (or separate PR if preferred). The TDD commit should contain only the 4 new test files. ### PROCESS-2 (Minor): No CHANGELOG entry Good point. I'll add a brief entry: `"Added TDD bug-capture tests for #932 (plan apply missing --yes flag). (#950)"`. ### CODE-3 (Nit): Generic `context.runner` / `context.result` naming Agreed — I'll rename to `context.apply_yes_runner` / `context.apply_yes_result` to follow the codebase convention and prevent potential cross-contamination. Also confirming that @CoreRasurae's findings (#1 and #2 — exit code checks) were already applied in commit `981786a3`. Working on all fixes now.
brent.edwards force-pushed tdd/m4-plan-apply-yes-flag from 2c14dafbc1
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 17s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 51s
CI / security (pull_request) Successful in 51s
CI / unit_tests (pull_request) Successful in 3m8s
CI / integration_tests (pull_request) Successful in 3m32s
CI / e2e_tests (pull_request) Successful in 3m53s
CI / docker (pull_request) Successful in 58s
CI / coverage (pull_request) Successful in 6m4s
CI / benchmark-regression (pull_request) Successful in 37m48s
to f0162ef637
All checks were successful
CI / lint (pull_request) Successful in 30s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 45s
CI / security (pull_request) Successful in 49s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 15s
CI / integration_tests (pull_request) Successful in 3m43s
CI / e2e_tests (pull_request) Successful in 3m51s
CI / unit_tests (pull_request) Successful in 4m29s
CI / coverage (pull_request) Successful in 6m3s
CI / docker (pull_request) Successful in 1m19s
CI / benchmark-regression (pull_request) Successful in 40m51s
2026-03-18 03:31:57 +00:00
Compare
brent.edwards force-pushed tdd/m4-plan-apply-yes-flag from f0162ef637
All checks were successful
CI / lint (pull_request) Successful in 30s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 45s
CI / security (pull_request) Successful in 49s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 15s
CI / integration_tests (pull_request) Successful in 3m43s
CI / e2e_tests (pull_request) Successful in 3m51s
CI / unit_tests (pull_request) Successful in 4m29s
CI / coverage (pull_request) Successful in 6m3s
CI / docker (pull_request) Successful in 1m19s
CI / benchmark-regression (pull_request) Successful in 40m51s
to fcbf02c5bf
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 22s
CI / build (pull_request) Successful in 29s
CI / quality (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 59s
CI / security (pull_request) Successful in 1m8s
CI / unit_tests (pull_request) Successful in 3m36s
CI / integration_tests (pull_request) Successful in 4m12s
CI / e2e_tests (pull_request) Successful in 5m43s
CI / docker (pull_request) Successful in 1m29s
CI / coverage (pull_request) Successful in 6m11s
CI / benchmark-regression (pull_request) Successful in 39m2s
2026-03-18 22:14:14 +00:00
Compare
Author
Member

Review Findings — Verified & Resolved

All three review findings are addressed in the rebased branch:

Finding Status Detail
PROCESS-1 (Minor): Unrelated Robot file changes Resolved by rebase Branch now contains only 5 files: CHANGELOG.md + 4 TDD test files
PROCESS-2 (Minor): CHANGELOG entry for #950 Verified present CHANGELOG.md line 11: - Added TDD bug-capture tests for #932 (plan apply missing --yes flag). (#950)
CODE-3 (Nit): Generic context attribute names Verified fixed context.runnercontext.apply_yes_runner, context.resultcontext.apply_yes_result throughout features/steps/tdd_plan_apply_yes_flag_steps.py

Lint/typecheck results:

  • nox -s lint — All checks passed
  • nox -s typecheck — 0 errors, 1 pre-existing warning (unrelated file)

Final commit: fcbf02c5 (single commit on master)

## Review Findings — Verified & Resolved All three review findings are addressed in the rebased branch: | Finding | Status | Detail | |---------|--------|--------| | **PROCESS-1** (Minor): Unrelated Robot file changes | Resolved by rebase | Branch now contains only 5 files: CHANGELOG.md + 4 TDD test files | | **PROCESS-2** (Minor): CHANGELOG entry for #950 | Verified present | `CHANGELOG.md` line 11: `- Added TDD bug-capture tests for #932 (plan apply missing --yes flag). (#950)` | | **CODE-3** (Nit): Generic context attribute names | Verified fixed | `context.runner` → `context.apply_yes_runner`, `context.result` → `context.apply_yes_result` throughout `features/steps/tdd_plan_apply_yes_flag_steps.py` | **Lint/typecheck results:** - `nox -s lint` — All checks passed - `nox -s typecheck` — 0 errors, 1 pre-existing warning (unrelated file) **Final commit:** `fcbf02c5` (single commit on master)
Author
Member

Review Fixes Verified — Commit fcbf02c5

Branch rebased onto origin/master (ad98d41d). All 3 review findings resolved:

Finding Severity Status
PROCESS-1 (unrelated Robot file changes) Major Resolved by rebase — branch now contains only 5 TDD test files
PROCESS-2 (CHANGELOG entry) Minor Already present — entry for #950 in ## Unreleased
CODE-3 (generic context attributes) Nit Already renamed to context.apply_yes_runner / context.apply_yes_result

Quality Gates

  • nox -s lintPASS
  • nox -s typecheckPASS (0 errors)
  • Single commit, no merge commits, rebased on ad98d41d
## Review Fixes Verified — Commit `fcbf02c5` Branch rebased onto `origin/master` (`ad98d41d`). All 3 review findings resolved: | Finding | Severity | Status | |---------|----------|--------| | **PROCESS-1** (unrelated Robot file changes) | Major | Resolved by rebase — branch now contains only 5 TDD test files | | **PROCESS-2** (CHANGELOG entry) | Minor | Already present — entry for #950 in `## Unreleased` | | **CODE-3** (generic context attributes) | Nit | Already renamed to `context.apply_yes_runner` / `context.apply_yes_result` | ### Quality Gates - `nox -s lint` — **PASS** - `nox -s typecheck` — **PASS** (0 errors) - Single commit, no merge commits, rebased on `ad98d41d`
freemo approved these changes 2026-03-19 04:54:15 +00:00
Dismissed
freemo left a comment

Code Review — PR #958 test: TDD bug-capture test for #932 — plan apply missing --yes flag

Clean, well-scoped TDD test PR. The 2 Behave scenarios + 2 Robot tests verify that lifecycle-apply recognizes the --yes/-y flag (exit code != 2, no "No such option" text). TDD tags @tdd_expected_fail @tdd_bug @tdd_bug_932 are correctly applied.

Approved with one note:

  1. Needs rebase — The PR has merge conflicts (mergeable: false). The code itself is clean — once rebased against current master, this should be ready to merge.
## Code Review — PR #958 `test: TDD bug-capture test for #932 — plan apply missing --yes flag` Clean, well-scoped TDD test PR. The 2 Behave scenarios + 2 Robot tests verify that `lifecycle-apply` recognizes the `--yes`/`-y` flag (exit code != 2, no "No such option" text). TDD tags `@tdd_expected_fail @tdd_bug @tdd_bug_932` are correctly applied. **Approved** with one note: 1. **Needs rebase** — The PR has merge conflicts (`mergeable: false`). The code itself is clean — once rebased against current `master`, this should be ready to merge.
Owner

Planning Agent — Day 39 PR Status

This TDD PR (#958) for bug #932 is ready for merge. All review findings have been addressed:

  1. PROCESS-1 (out-of-scope Robot changes) — Resolved via rebase, branch now clean.
  2. PROCESS-2 (CHANGELOG) — Added.
  3. CODE-3 (context naming) — Fixed to context.apply_yes_runner/context.apply_yes_result.

@hamza.khyari provided a thorough review and @CoreRasurae provided early findings. @brent.edwards addressed all items. The TDD test logic is correct — verifies that lifecycle-apply --yes currently fails with exit code 2 ("No such option"), which @tdd_expected_fail inverts to a CI pass.

Merge recommendation: Ready for merge. Reviewers assigned: @freemo and @hamza.khyari. Two approvals needed per CONTRIBUTING.md. Once merged, @hurui200320 (Rui) can begin the bugfix PR for #932.

**Planning Agent — Day 39 PR Status** This TDD PR (#958) for bug #932 is ready for merge. All review findings have been addressed: 1. PROCESS-1 (out-of-scope Robot changes) — Resolved via rebase, branch now clean. 2. PROCESS-2 (CHANGELOG) — Added. 3. CODE-3 (context naming) — Fixed to `context.apply_yes_runner`/`context.apply_yes_result`. @hamza.khyari provided a thorough review and @CoreRasurae provided early findings. @brent.edwards addressed all items. The TDD test logic is correct — verifies that `lifecycle-apply --yes` currently fails with exit code 2 ("No such option"), which `@tdd_expected_fail` inverts to a CI pass. **Merge recommendation**: Ready for merge. Reviewers assigned: @freemo and @hamza.khyari. Two approvals needed per CONTRIBUTING.md. Once merged, @hurui200320 (Rui) can begin the bugfix PR for #932.
brent.edwards force-pushed tdd/m4-plan-apply-yes-flag from fcbf02c5bf
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 22s
CI / build (pull_request) Successful in 29s
CI / quality (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 59s
CI / security (pull_request) Successful in 1m8s
CI / unit_tests (pull_request) Successful in 3m36s
CI / integration_tests (pull_request) Successful in 4m12s
CI / e2e_tests (pull_request) Successful in 5m43s
CI / docker (pull_request) Successful in 1m29s
CI / coverage (pull_request) Successful in 6m11s
CI / benchmark-regression (pull_request) Successful in 39m2s
to 53d3f82228
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 27s
CI / quality (pull_request) Successful in 48s
CI / build (pull_request) Successful in 50s
CI / typecheck (pull_request) Successful in 52s
CI / security (pull_request) Successful in 53s
CI / unit_tests (pull_request) Successful in 5m37s
CI / integration_tests (pull_request) Successful in 5m38s
CI / e2e_tests (pull_request) Successful in 5m41s
CI / docker (pull_request) Successful in 9s
CI / coverage (pull_request) Successful in 7m30s
CI / benchmark-regression (pull_request) Failing after 15m56s
2026-03-20 22:25:31 +00:00
Compare
brent.edwards dismissed freemo's review 2026-03-20 22:25:31 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

brent.edwards force-pushed tdd/m4-plan-apply-yes-flag from 53d3f82228
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 27s
CI / quality (pull_request) Successful in 48s
CI / build (pull_request) Successful in 50s
CI / typecheck (pull_request) Successful in 52s
CI / security (pull_request) Successful in 53s
CI / unit_tests (pull_request) Successful in 5m37s
CI / integration_tests (pull_request) Successful in 5m38s
CI / e2e_tests (pull_request) Successful in 5m41s
CI / docker (pull_request) Successful in 9s
CI / coverage (pull_request) Successful in 7m30s
CI / benchmark-regression (pull_request) Failing after 15m56s
to 28ffd64832
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 24s
CI / quality (pull_request) Successful in 43s
CI / security (pull_request) Successful in 47s
CI / typecheck (pull_request) Successful in 48s
CI / e2e_tests (pull_request) Successful in 4m45s
CI / integration_tests (pull_request) Successful in 5m38s
CI / unit_tests (pull_request) Successful in 5m44s
CI / docker (pull_request) Successful in 8s
CI / coverage (pull_request) Successful in 9m59s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-20 23:22:32 +00:00
Compare
Author
Member

Fixed nox -s benchmark_regression crash caused by missing ASV_BASE_SHA environment variable. Updated noxfile.py to default to master if the variable is unset.

Fixed `nox -s benchmark_regression` crash caused by missing `ASV_BASE_SHA` environment variable. Updated `noxfile.py` to default to `master` if the variable is unset.
brent.edwards force-pushed tdd/m4-plan-apply-yes-flag from 28ffd64832
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 24s
CI / quality (pull_request) Successful in 43s
CI / security (pull_request) Successful in 47s
CI / typecheck (pull_request) Successful in 48s
CI / e2e_tests (pull_request) Successful in 4m45s
CI / integration_tests (pull_request) Successful in 5m38s
CI / unit_tests (pull_request) Successful in 5m44s
CI / docker (pull_request) Successful in 8s
CI / coverage (pull_request) Successful in 9m59s
CI / benchmark-regression (pull_request) Has been cancelled
to b48e17bb09
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 28s
CI / build (pull_request) Successful in 27s
CI / quality (pull_request) Successful in 49s
CI / security (pull_request) Successful in 57s
CI / typecheck (pull_request) Successful in 1m5s
CI / unit_tests (pull_request) Successful in 3m11s
CI / integration_tests (pull_request) Successful in 3m56s
CI / docker (pull_request) Successful in 1m8s
CI / e2e_tests (pull_request) Successful in 6m22s
CI / coverage (pull_request) Successful in 7m56s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-20 23:40:21 +00:00
Compare
brent.edwards force-pushed tdd/m4-plan-apply-yes-flag from b48e17bb09
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 28s
CI / build (pull_request) Successful in 27s
CI / quality (pull_request) Successful in 49s
CI / security (pull_request) Successful in 57s
CI / typecheck (pull_request) Successful in 1m5s
CI / unit_tests (pull_request) Successful in 3m11s
CI / integration_tests (pull_request) Successful in 3m56s
CI / docker (pull_request) Successful in 1m8s
CI / e2e_tests (pull_request) Successful in 6m22s
CI / coverage (pull_request) Successful in 7m56s
CI / benchmark-regression (pull_request) Has been cancelled
to 7c0d42f92a
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 28s
CI / build (pull_request) Successful in 27s
CI / quality (pull_request) Successful in 45s
CI / typecheck (pull_request) Successful in 51s
CI / security (pull_request) Successful in 53s
CI / unit_tests (pull_request) Successful in 3m43s
CI / docker (pull_request) Successful in 1m1s
CI / integration_tests (pull_request) Successful in 5m11s
CI / e2e_tests (pull_request) Successful in 6m24s
CI / coverage (pull_request) Successful in 6m33s
CI / benchmark-regression (pull_request) Successful in 36m10s
2026-03-20 23:52:37 +00:00
Compare
brent.edwards deleted branch tdd/m4-plan-apply-yes-flag 2026-03-21 00:13:18 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core!958
No description provided.