feat(reviewer): implement review-first, fix-later flow #145
tests.yml
on: pull_request
test
1m 34s
core-flow-smoke
1m 15s
Annotations
20 errors and 2 warnings
|
core-flow-smoke
Process completed with exit code 1.
|
|
[@jonit-dev/night-watch-cli] src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer parallel mode should aggregate results when one worker times out and one succeeds:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L2072
AssertionError: expected +0 to be 124 // Object.is equality
- Expected
+ Received
- 124
+ 0
❯ src/__tests__/scripts/core-flow-smoke.test.ts:2072:27
|
|
[@jonit-dev/night-watch-cli] src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should invoke codex with exec syntax when reviewer provider is codex:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1979
AssertionError: expected +0 to be 1 // Object.is equality
- Expected
+ Received
- 1
+ 0
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1979:27
|
|
[@jonit-dev/night-watch-cli] src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should emit failure when provider exits with non-zero code:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1907
AssertionError: expected +0 to be 1 // Object.is equality
- Expected
+ Received
- 1
+ 0
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1907:27
|
|
[@jonit-dev/night-watch-cli] src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should cap processed PRs per run in dry-run mode:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1763
AssertionError: expected 127 to be +0 // Object.is equality
- Expected
+ Received
- 0
+ 127
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1763:27
|
|
[@jonit-dev/night-watch-cli] src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should label targeted PR needs-human-review when score stays missing after max retries:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1699
AssertionError: expected +0 to be 1 // Object.is equality
- Expected
+ Received
- 1
+ 0
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1699:27
|
|
[@jonit-dev/night-watch-cli] src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should skip PRs labeled needs-human-review:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1608
AssertionError: expected 127 to be +0 // Object.is equality
- Expected
+ Received
- 0
+ 127
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1608:27
|
|
[@jonit-dev/night-watch-cli] src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should accept plain Score comments when applying min review score threshold:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1551
AssertionError: expected 127 to be +0 // Object.is equality
- Expected
+ Received
- 0
+ 127
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1551:27
|
|
[@jonit-dev/night-watch-cli] src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer targeted mode should give attempt 1 the full remaining runtime budget:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1204
AssertionError: expected '\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━…' to contain 'RETRY: Starting attempt 1/3 (timeout:…'
- Expected
+ Received
- RETRY: Starting attempt 1/3 (timeout: 3s) pr=1
+
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+
+ [2026-03-29 16:57:35] [PID:6630] [+0m0s] RUN-START: reviewer invoked project=/tmp/nw-smoke-reviewer-budget-vShIoR provider=claude worker=0 target_pr=1 parallel=0
+ [2026-03-29 16:57:35] [PID:6630] [+0m0s] CONFIG: max_runtime=3s min_review_score=80 auto_merge=0 branch_patterns=night-watch/
+ [2026-03-29 16:57:35] [PID:6630] [+0m0s] INFO: PR #1 (night-watch/budget-test) has no review score yet - marking as needs_review
+ [2026-03-29 16:57:35] [PID:6630] [+0m0s] START: Found PR(s) needing work:#1
+ fatal: 'origin' does not appear to be a git repository
+ fatal: Could not read from remote repository.
+
+ Please make sure you have the correct access rights
+ and the repository exists.
+ Preparing worktree (detached HEAD fa75ebc)
+ HEAD is now at fa75ebc init
+ [2026-03-29 16:57:35] [PID:6630] [+0m0s] INFO: Using reviewer prompt from /home/runner/work/night-watch-cli/night-watch-cli/scripts/../templates/pr-reviewer.md
+ [2026-03-29 16:57:35] [PID:6630] [+0m0s] INFO: Added PRD context for PR #1
+ [2026-03-29 16:57:35] [PID:6630] [+0m0s] RETRY: Starting attempt 1/3 (timeout: 1s) pr=1
+ [2026-03-29 16:57:36] [PID:6630] [+0m1s] RETRY: Attempt 1/3 finished exit_code=124 elapsed=1s pr=1
+ [2026-03-29 16:57:36] [PID:6630] [+0m1s] RETRY: Provider exited with code 124, not retrying
+ [2026-03-29 16:57:36] [PID:6630] [+0m1s] CLEANUP: Removing leftover worktree /tmp/nw-smoke-reviewer-budget-vShIoR-nw-review-runner-pr-1-nw-smoke-reviewer-budget-vShIoR-c888850a995b-6630
+ [2026-03-29 16:57:36] [PID:6630] [+0m1s] OUTCOME: exit_code=124 total_elapsed=1s prs=#1 attempts=1
+ [2026-03-29 16:57:36] [PID:6630] [+0m1s] TIMEOUT: PR reviewer killed after 3s
+
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1204:25
|
|
[@jonit-dev/night-watch-cli] src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should emit timeout when provider exceeds NW_REVIEWER_MAX_RUNTIME:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1108
AssertionError: expected +0 to be 124 // Object.is equality
- Expected
+ Received
- 124
+ 0
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1108:27
|
|
src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer parallel mode should aggregate results when one worker times out and one succeeds:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L2072
AssertionError: expected +0 to be 124 // Object.is equality
- Expected
+ Received
- 124
+ 0
❯ src/__tests__/scripts/core-flow-smoke.test.ts:2072:27
|
|
src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should invoke codex with exec syntax when reviewer provider is codex:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1979
AssertionError: expected +0 to be 1 // Object.is equality
- Expected
+ Received
- 1
+ 0
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1979:27
|
|
src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should emit failure when provider exits with non-zero code:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1907
AssertionError: expected +0 to be 1 // Object.is equality
- Expected
+ Received
- 1
+ 0
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1907:27
|
|
src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should cap processed PRs per run in dry-run mode:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1763
AssertionError: expected 127 to be +0 // Object.is equality
- Expected
+ Received
- 0
+ 127
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1763:27
|
|
src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should label targeted PR needs-human-review when score stays missing after max retries:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1699
AssertionError: expected +0 to be 1 // Object.is equality
- Expected
+ Received
- 1
+ 0
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1699:27
|
|
src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should skip PRs labeled needs-human-review:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1608
AssertionError: expected 127 to be +0 // Object.is equality
- Expected
+ Received
- 0
+ 127
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1608:27
|
|
src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should accept plain Score comments when applying min review score threshold:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1551
AssertionError: expected 127 to be +0 // Object.is equality
- Expected
+ Received
- 0
+ 127
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1551:27
|
|
src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer targeted mode should give attempt 1 the full remaining runtime budget:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1204
AssertionError: expected '\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━…' to contain 'RETRY: Starting attempt 1/3 (timeout:…'
- Expected
+ Received
- RETRY: Starting attempt 1/3 (timeout: 3s) pr=1
+
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+
+ [2026-03-29 16:57:55] [PID:8910] [+0m1s] RUN-START: reviewer invoked project=/tmp/nw-smoke-reviewer-budget-N21XON provider=claude worker=0 target_pr=1 parallel=0
+ [2026-03-29 16:57:55] [PID:8910] [+0m1s] CONFIG: max_runtime=3s min_review_score=80 auto_merge=0 branch_patterns=night-watch/
+ [2026-03-29 16:57:55] [PID:8910] [+0m1s] INFO: PR #1 (night-watch/budget-test) has no review score yet - marking as needs_review
+ [2026-03-29 16:57:55] [PID:8910] [+0m1s] START: Found PR(s) needing work:#1
+ fatal: 'origin' does not appear to be a git repository
+ fatal: Could not read from remote repository.
+
+ Please make sure you have the correct access rights
+ and the repository exists.
+ Preparing worktree (detached HEAD 5b6e718)
+ HEAD is now at 5b6e718 init
+ [2026-03-29 16:57:55] [PID:8910] [+0m1s] INFO: Using reviewer prompt from /home/runner/work/night-watch-cli/night-watch-cli/scripts/../templates/pr-reviewer.md
+ [2026-03-29 16:57:55] [PID:8910] [+0m1s] INFO: Added PRD context for PR #1
+ [2026-03-29 16:57:55] [PID:8910] [+0m1s] RETRY: Starting attempt 1/3 (timeout: 1s) pr=1
+ [2026-03-29 16:57:56] [PID:8910] [+0m2s] RETRY: Attempt 1/3 finished exit_code=124 elapsed=1s pr=1
+ [2026-03-29 16:57:56] [PID:8910] [+0m2s] RETRY: Provider exited with code 124, not retrying
+ [2026-03-29 16:57:56] [PID:8910] [+0m2s] CLEANUP: Removing leftover worktree /tmp/nw-smoke-reviewer-budget-N21XON-nw-review-runner-pr-1-nw-smoke-reviewer-budget-N21XON-7711f614bd62-8910
+ [2026-03-29 16:57:56] [PID:8910] [+0m2s] OUTCOME: exit_code=124 total_elapsed=2s prs=#1 attempts=1
+ [2026-03-29 16:57:56] [PID:8910] [+0m2s] TIMEOUT: PR reviewer killed after 3s
+
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1204:25
|
|
src/__tests__/scripts/core-flow-smoke.test.ts > core flow smoke tests (bash scripts) > reviewer should emit timeout when provider exceeds NW_REVIEWER_MAX_RUNTIME:
packages/cli/src/__tests__/scripts/core-flow-smoke.test.ts#L1108
AssertionError: expected +0 to be 124 // Object.is equality
- Expected
+ Received
- 124
+ 0
❯ src/__tests__/scripts/core-flow-smoke.test.ts:1108:27
|
|
test
@jonit-dev/night-watch-cli#test: command (/home/runner/work/night-watch-cli/night-watch-cli/packages/cli) /tmp/yarn--1774803444867-0.8641076097171909/yarn run test exited (1)
|
|
core-flow-smoke
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
test
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|