@jonit-dev/night-watch-cli 1.7.59 → 1.7.62
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.
- package/dist/cli.js +999 -1762
- package/dist/cli.js.map +1 -1
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +6 -3
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/cron.d.ts.map +1 -1
- package/dist/commands/cron.js +1 -81
- package/dist/commands/cron.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +3 -1
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/qa.d.ts.map +1 -1
- package/dist/commands/qa.js +4 -1
- package/dist/commands/qa.js.map +1 -1
- package/dist/commands/queue.d.ts +8 -0
- package/dist/commands/queue.d.ts.map +1 -0
- package/dist/commands/queue.js +244 -0
- package/dist/commands/queue.js.map +1 -0
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +10 -4
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +14 -4
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/shared/env-builder.d.ts +2 -1
- package/dist/commands/shared/env-builder.d.ts.map +1 -1
- package/dist/commands/shared/env-builder.js +9 -2
- package/dist/commands/shared/env-builder.js.map +1 -1
- package/dist/commands/slice.d.ts.map +1 -1
- package/dist/commands/slice.js +6 -3
- package/dist/commands/slice.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +3 -1
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/scripts/night-watch-audit-cron.sh +15 -2
- package/dist/scripts/night-watch-cron.sh +18 -3
- package/dist/scripts/night-watch-helpers.sh +156 -1
- package/dist/scripts/night-watch-pr-reviewer-cron.sh +17 -2
- package/dist/scripts/night-watch-qa-cron.sh +17 -4
- package/dist/scripts/night-watch-slicer-cron.sh +11 -2
- package/dist/templates/audit.md +7 -0
- package/dist/templates/qa.md +12 -0
- package/dist/web/assets/index-BIONU0qz.css +1 -0
- package/dist/web/assets/index-yKEQysks.js +365 -0
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slice.js","sourceRoot":"","sources":["../../src/commands/slice.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slice.js","sourceRoot":"","sources":["../../src/commands/slice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/B,gBAAgB,CA8ClB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0EvD"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as path from 'path';
|
|
6
6
|
import * as fs from 'fs';
|
|
7
|
-
import { dim, generateMarker, getEntries, getProjectEntries, getProjectName, removeEntriesForProject, success, error as uiError, warn, } from '@night-watch/core';
|
|
7
|
+
import { dim, generateMarker, getEntries, getProjectEntries, getProjectName, removeEntriesForProject, success, error as uiError, unregisterProject, warn, } from '@night-watch/core';
|
|
8
8
|
/**
|
|
9
9
|
* Core uninstall logic, reusable from dashboard.
|
|
10
10
|
* Returns result without printing to console.
|
|
@@ -15,9 +15,11 @@ export function performUninstall(projectDir, options) {
|
|
|
15
15
|
const marker = generateMarker(projectName);
|
|
16
16
|
const existingEntries = Array.from(new Set([...getEntries(marker), ...getProjectEntries(projectDir)]));
|
|
17
17
|
if (existingEntries.length === 0) {
|
|
18
|
+
unregisterProject(projectDir);
|
|
18
19
|
return { success: true, removedCount: 0 };
|
|
19
20
|
}
|
|
20
21
|
const removedCount = removeEntriesForProject(projectDir, marker);
|
|
22
|
+
unregisterProject(projectDir);
|
|
21
23
|
if (!options?.keepLogs) {
|
|
22
24
|
const logDir = path.join(projectDir, 'logs');
|
|
23
25
|
if (fs.existsSync(logDir)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EACL,GAAG,EACH,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,OAAO,EACP,KAAK,IAAI,OAAO,EAChB,IAAI,GACL,MAAM,mBAAmB,CAAC;AAY3B;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,EAClB,OAAgC;IAEhC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAE3C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAChC,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CACnE,CAAC;QACF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QAC5C,CAAC;QAED,MAAM,YAAY,GAAG,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ REPORT_FILE="${PROJECT_DIR}/logs/audit-report.md"
|
|
|
19
19
|
MAX_RUNTIME="${NW_AUDIT_MAX_RUNTIME:-1800}" # 30 minutes
|
|
20
20
|
MAX_LOG_SIZE="524288" # 512 KB
|
|
21
21
|
PROVIDER_CMD="${NW_PROVIDER_CMD:-claude}"
|
|
22
|
+
SCRIPT_TYPE="audit"
|
|
22
23
|
PROVIDER_LABEL="${NW_PROVIDER_LABEL:-}"
|
|
23
24
|
SCRIPT_START_TIME=$(date +%s)
|
|
24
25
|
|
|
@@ -54,6 +55,18 @@ if ! validate_provider "${PROVIDER_CMD}"; then
|
|
|
54
55
|
exit 1
|
|
55
56
|
fi
|
|
56
57
|
|
|
58
|
+
# Global gate: if queue is enabled and we can't acquire the global lock,
|
|
59
|
+
# enqueue the job and exit. The dispatcher will run it later.
|
|
60
|
+
if [ "${NW_QUEUE_ENABLED:-0}" = "1" ]; then
|
|
61
|
+
if acquire_global_gate; then
|
|
62
|
+
arm_global_queue_cleanup
|
|
63
|
+
else
|
|
64
|
+
enqueue_job "${SCRIPT_TYPE}" "${PROJECT_DIR}"
|
|
65
|
+
emit_result "queued"
|
|
66
|
+
exit 0
|
|
67
|
+
fi
|
|
68
|
+
fi
|
|
69
|
+
|
|
57
70
|
rotate_log
|
|
58
71
|
log_separator
|
|
59
72
|
log "RUN-START: audit invoked project=${PROJECT_DIR} provider=${PROVIDER_CMD} dry_run=${NW_DRY_RUN:-0}"
|
|
@@ -144,9 +157,9 @@ for AUDIT_ATTEMPT in $(seq 1 "${AUDIT_MAX_RETRIES}"); do
|
|
|
144
157
|
codex)
|
|
145
158
|
if (
|
|
146
159
|
cd "${AUDIT_WORKTREE_DIR}" && timeout "${MAX_RUNTIME}" \
|
|
147
|
-
codex
|
|
160
|
+
codex exec \
|
|
148
161
|
--yolo \
|
|
149
|
-
|
|
162
|
+
"${AUDIT_PROMPT}" \
|
|
150
163
|
>> "${LOG_FILE}" 2>&1
|
|
151
164
|
); then
|
|
152
165
|
EXIT_CODE=0
|
|
@@ -49,6 +49,21 @@ source "${SCRIPT_DIR}/night-watch-helpers.sh"
|
|
|
49
49
|
PROJECT_RUNTIME_KEY=$(project_runtime_key "${PROJECT_DIR}")
|
|
50
50
|
# NOTE: Lock file path must match executorLockPath() in src/utils/status-data.ts
|
|
51
51
|
LOCK_FILE="/tmp/night-watch-${PROJECT_RUNTIME_KEY}.lock"
|
|
52
|
+
SCRIPT_TYPE="executor"
|
|
53
|
+
|
|
54
|
+
# ── Global Job Queue Gate ────────────────────────────────────────────────────
|
|
55
|
+
# Acquire global gate before per-project lock to serialize jobs across projects.
|
|
56
|
+
# When gate is busy, enqueue the job and exit cleanly.
|
|
57
|
+
if [ "${NW_QUEUE_ENABLED:-0}" = "1" ]; then
|
|
58
|
+
if acquire_global_gate; then
|
|
59
|
+
arm_global_queue_cleanup
|
|
60
|
+
else
|
|
61
|
+
enqueue_job "${SCRIPT_TYPE}" "${PROJECT_DIR}"
|
|
62
|
+
emit_result "queued"
|
|
63
|
+
exit 0
|
|
64
|
+
fi
|
|
65
|
+
fi
|
|
66
|
+
# ──────────────────────────────────────────────────────────────────────────────
|
|
52
67
|
|
|
53
68
|
emit_result() {
|
|
54
69
|
local status="${1:?status required}"
|
|
@@ -464,9 +479,9 @@ while [ "${ATTEMPT}" -lt "${MAX_RETRIES}" ]; do
|
|
|
464
479
|
codex)
|
|
465
480
|
if (
|
|
466
481
|
cd "${WORKTREE_DIR}" && timeout "${MAX_RUNTIME}" \
|
|
467
|
-
codex
|
|
482
|
+
codex exec \
|
|
468
483
|
--yolo \
|
|
469
|
-
|
|
484
|
+
"${PROMPT}" \
|
|
470
485
|
>> "${LOG_FILE}" 2>&1
|
|
471
486
|
); then
|
|
472
487
|
EXIT_CODE=0
|
|
@@ -625,7 +640,7 @@ else
|
|
|
625
640
|
"${NW_CLI}" board comment "${ISSUE_NUMBER}" \
|
|
626
641
|
--body "Execution failed with exit code ${EXIT_CODE} (via ${EFFECTIVE_PROVIDER_LABEL}). Moved back to Ready for retry." 2>>"${LOG_FILE}" || true
|
|
627
642
|
fi
|
|
628
|
-
night_watch_history record "${PROJECT_DIR}" "${ELIGIBLE_PRD}" failure --exit-code "${EXIT_CODE}"
|
|
643
|
+
night_watch_history record "${PROJECT_DIR}" "${ELIGIBLE_PRD}" failure --exit-code "${EXIT_CODE}" 1>/dev/null || true
|
|
629
644
|
emit_result "failure" "prd=${ELIGIBLE_PRD}|branch=${BRANCH_NAME}"
|
|
630
645
|
fi
|
|
631
646
|
|
|
@@ -227,11 +227,25 @@ acquire_lock() {
|
|
|
227
227
|
rm -f "${lock_file}"
|
|
228
228
|
fi
|
|
229
229
|
|
|
230
|
-
|
|
230
|
+
local quoted_lock_file=""
|
|
231
|
+
printf -v quoted_lock_file '%q' "${lock_file}"
|
|
232
|
+
append_exit_trap "rm -f -- ${quoted_lock_file}"
|
|
231
233
|
echo $$ > "${lock_file}"
|
|
232
234
|
return 0
|
|
233
235
|
}
|
|
234
236
|
|
|
237
|
+
append_exit_trap() {
|
|
238
|
+
local command="${1:?command required}"
|
|
239
|
+
local existing=""
|
|
240
|
+
|
|
241
|
+
existing=$(trap -p EXIT | sed -n "s/^trap -- '\\(.*\\)' EXIT$/\\1/p")
|
|
242
|
+
if [ -n "${existing}" ]; then
|
|
243
|
+
trap "${existing}; ${command}" EXIT
|
|
244
|
+
else
|
|
245
|
+
trap "${command}" EXIT
|
|
246
|
+
fi
|
|
247
|
+
}
|
|
248
|
+
|
|
235
249
|
# ── Detect default branch ───────────────────────────────────────────────────
|
|
236
250
|
|
|
237
251
|
get_branch_tip_timestamp() {
|
|
@@ -806,3 +820,144 @@ find_eligible_board_issue() {
|
|
|
806
820
|
|
|
807
821
|
return 1
|
|
808
822
|
}
|
|
823
|
+
|
|
824
|
+
# ── Global Job Queue Gate ─────────────────────────────────────────────────────
|
|
825
|
+
|
|
826
|
+
# Get the path to the queue lock file
|
|
827
|
+
get_queue_lock_path() {
|
|
828
|
+
local queue_home="${NIGHT_WATCH_HOME:-${HOME}/.night-watch}"
|
|
829
|
+
printf "%s/%s" "${queue_home}" "queue.lock"
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
# Try to acquire the global queue gate using flock.
|
|
833
|
+
# Uses a shared lock file (~/.night-watch/queue.lock).
|
|
834
|
+
# Returns 0 if acquired (gate is free), 1 if busy.
|
|
835
|
+
# Holds the lock fd open for the caller via GLOBAL_GATE_FD variable.
|
|
836
|
+
acquire_global_gate() {
|
|
837
|
+
local lock_path
|
|
838
|
+
lock_path=$(get_queue_lock_path)
|
|
839
|
+
|
|
840
|
+
# Ensure the .night-watch directory exists
|
|
841
|
+
mkdir -p "$(dirname "${lock_path}")"
|
|
842
|
+
|
|
843
|
+
# Open the lock file as fd 200
|
|
844
|
+
exec 200>"${lock_path}"
|
|
845
|
+
|
|
846
|
+
# Try non-blocking flock
|
|
847
|
+
if flock --nonblock 200; then
|
|
848
|
+
GLOBAL_GATE_FD=200
|
|
849
|
+
return 0
|
|
850
|
+
else
|
|
851
|
+
GLOBAL_GATE_FD=""
|
|
852
|
+
return 1
|
|
853
|
+
fi
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
# Release the global queue gate
|
|
857
|
+
release_global_gate() {
|
|
858
|
+
if [ -n "${GLOBAL_GATE_FD:-}" ]; then
|
|
859
|
+
flock --unlock "${GLOBAL_GATE_FD}" 2>/dev/null || true
|
|
860
|
+
exec 200>&-
|
|
861
|
+
GLOBAL_GATE_FD=""
|
|
862
|
+
fi
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
__night_watch_queue_cleanup() {
|
|
866
|
+
local exit_code="${1:-0}"
|
|
867
|
+
|
|
868
|
+
if [ "${NW_QUEUE_CLEANUP_ARMED:-0}" = "1" ]; then
|
|
869
|
+
NW_QUEUE_CLEANUP_ARMED=0
|
|
870
|
+
complete_queued_job
|
|
871
|
+
release_global_gate
|
|
872
|
+
dispatch_next_queued_job
|
|
873
|
+
fi
|
|
874
|
+
|
|
875
|
+
return "${exit_code}"
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
arm_global_queue_cleanup() {
|
|
879
|
+
if [ "${NW_QUEUE_CLEANUP_ARMED:-0}" = "1" ]; then
|
|
880
|
+
return 0
|
|
881
|
+
fi
|
|
882
|
+
|
|
883
|
+
NW_QUEUE_CLEANUP_ARMED=1
|
|
884
|
+
append_exit_trap "__night_watch_queue_cleanup \$?"
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
# Enqueue the current job to the SQLite queue.
|
|
888
|
+
# Usage: enqueue_job <job_type> <project_dir>
|
|
889
|
+
# Stores project path/name, job type, and relevant NW_* env vars for later dispatch.
|
|
890
|
+
enqueue_job() {
|
|
891
|
+
local job_type="${1:?job_type required}"
|
|
892
|
+
local project_dir="${2:?project_dir required}"
|
|
893
|
+
local project_name
|
|
894
|
+
project_name=$(basename "${project_dir}")
|
|
895
|
+
|
|
896
|
+
local cli_bin
|
|
897
|
+
cli_bin=$(resolve_night_watch_cli) || {
|
|
898
|
+
log "ERROR: Cannot resolve night-watch CLI for enqueue"
|
|
899
|
+
return 1
|
|
900
|
+
}
|
|
901
|
+
|
|
902
|
+
# Serialize relevant NW_* env vars to JSON for re-invocation
|
|
903
|
+
local env_json="{}"
|
|
904
|
+
if command -v jq >/dev/null 2>&1; then
|
|
905
|
+
env_json=$(
|
|
906
|
+
env | grep -E '^NW_' | jq -Rs 'split("\n") | map(select(length > 0) | split("=") | {(.[0]): (.[1:] | join("="))}) | add // {}' 2>/dev/null || echo '{}'
|
|
907
|
+
)
|
|
908
|
+
fi
|
|
909
|
+
|
|
910
|
+
log "QUEUE: Enqueueing ${job_type} for ${project_name} (gate busy)"
|
|
911
|
+
|
|
912
|
+
"${cli_bin}" queue enqueue "${job_type}" "${project_dir}" --env "${env_json}" >> "${LOG_FILE:-/dev/null}" 2>&1 || {
|
|
913
|
+
log "WARN: Failed to enqueue job"
|
|
914
|
+
return 1
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
return 0
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
# Dispatch the next queued job after the current job completes.
|
|
921
|
+
# Picks highest-priority pending job, marks it dispatched, and spawns it.
|
|
922
|
+
dispatch_next_queued_job() {
|
|
923
|
+
# Skip if queue is disabled
|
|
924
|
+
if [ "${NW_QUEUE_ENABLED:-0}" = "0" ]; then
|
|
925
|
+
return 0
|
|
926
|
+
fi
|
|
927
|
+
|
|
928
|
+
local cli_bin
|
|
929
|
+
cli_bin=$(resolve_night_watch_cli) || {
|
|
930
|
+
log "WARN: Cannot resolve night-watch CLI for dispatch"
|
|
931
|
+
return 1
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
log "QUEUE: Checking for pending jobs to dispatch"
|
|
935
|
+
|
|
936
|
+
# Call CLI to dispatch next job (this handles priority, expiration, and spawning)
|
|
937
|
+
"${cli_bin}" queue dispatch --log "${LOG_FILE:-/dev/null}" 2>/dev/null || true
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
complete_queued_job() {
|
|
941
|
+
local queue_entry_id="${NW_QUEUE_ENTRY_ID:-}"
|
|
942
|
+
if [ -z "${queue_entry_id}" ]; then
|
|
943
|
+
return 0
|
|
944
|
+
fi
|
|
945
|
+
|
|
946
|
+
local cli_bin
|
|
947
|
+
cli_bin=$(resolve_night_watch_cli) || {
|
|
948
|
+
log "WARN: Cannot resolve night-watch CLI for queue completion"
|
|
949
|
+
return 1
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
"${cli_bin}" queue complete "${queue_entry_id}" 2>/dev/null || true
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
# Expire stale queued jobs older than maxWaitTime.
|
|
956
|
+
# Called by the CLI dispatch command, but also available for manual cleanup.
|
|
957
|
+
expire_stale_jobs() {
|
|
958
|
+
local max_wait_time="${1:-7200}"
|
|
959
|
+
local cli_bin
|
|
960
|
+
cli_bin=$(resolve_night_watch_cli) || return 1
|
|
961
|
+
|
|
962
|
+
"${cli_bin}" queue expire --max-wait "${max_wait_time}" 2>/dev/null || true
|
|
963
|
+
}
|
|
@@ -76,6 +76,21 @@ else
|
|
|
76
76
|
LOCK_FILE="${GLOBAL_LOCK_FILE}"
|
|
77
77
|
fi
|
|
78
78
|
|
|
79
|
+
# ── Global Job Queue Gate ────────────────────────────────────────────────────
|
|
80
|
+
# Acquire global gate before per-project lock to serialize jobs across projects.
|
|
81
|
+
# When gate is busy, enqueue the job and exit cleanly.
|
|
82
|
+
SCRIPT_TYPE="reviewer"
|
|
83
|
+
if [ "${NW_QUEUE_ENABLED:-0}" = "1" ]; then
|
|
84
|
+
if acquire_global_gate; then
|
|
85
|
+
arm_global_queue_cleanup
|
|
86
|
+
else
|
|
87
|
+
enqueue_job "${SCRIPT_TYPE}" "${PROJECT_DIR}"
|
|
88
|
+
emit_result "queued"
|
|
89
|
+
exit 0
|
|
90
|
+
fi
|
|
91
|
+
fi
|
|
92
|
+
# ──────────────────────────────────────────────────────────────────────────────
|
|
93
|
+
|
|
79
94
|
emit_result() {
|
|
80
95
|
local status="${1:?status required}"
|
|
81
96
|
local details="${2:-}"
|
|
@@ -1049,9 +1064,9 @@ for ATTEMPT in $(seq 1 "${TOTAL_ATTEMPTS}"); do
|
|
|
1049
1064
|
codex)
|
|
1050
1065
|
if (
|
|
1051
1066
|
cd "${REVIEW_WORKTREE_DIR}" && timeout "${ATTEMPT_TIMEOUT}" \
|
|
1052
|
-
codex
|
|
1067
|
+
codex exec \
|
|
1053
1068
|
--yolo \
|
|
1054
|
-
|
|
1069
|
+
"${REVIEWER_PROMPT}" \
|
|
1055
1070
|
>> "${LOG_FILE}" 2>&1
|
|
1056
1071
|
); then
|
|
1057
1072
|
EXIT_CODE=0
|
|
@@ -44,7 +44,21 @@ source "${SCRIPT_DIR}/night-watch-helpers.sh"
|
|
|
44
44
|
PROJECT_RUNTIME_KEY=$(project_runtime_key "${PROJECT_DIR}")
|
|
45
45
|
# NOTE: Lock file path must match qaLockPath() in src/utils/status-data.ts
|
|
46
46
|
LOCK_FILE="/tmp/night-watch-qa-${PROJECT_RUNTIME_KEY}.lock"
|
|
47
|
-
|
|
47
|
+
SCRIPT_TYPE="qa"
|
|
48
|
+
|
|
49
|
+
# ── Global Job Queue Gate ────────────────────────────────────────────────────
|
|
50
|
+
# Acquire global gate before per-project lock to serialize jobs across projects.
|
|
51
|
+
# When gate is busy, enqueue the job and exit cleanly.
|
|
52
|
+
if [ "${NW_QUEUE_ENABLED:-0}" = "1" ]; then
|
|
53
|
+
if acquire_global_gate; then
|
|
54
|
+
arm_global_queue_cleanup
|
|
55
|
+
else
|
|
56
|
+
enqueue_job "${SCRIPT_TYPE}" "${PROJECT_DIR}"
|
|
57
|
+
emit_result "queued"
|
|
58
|
+
exit 0
|
|
59
|
+
fi
|
|
60
|
+
fi
|
|
61
|
+
# ──────────────────────────────────────────────────────────────────────────────
|
|
48
62
|
emit_result() {
|
|
49
63
|
local status="${1:?status required}"
|
|
50
64
|
local details="${2:-}"
|
|
@@ -588,9 +602,9 @@ Action: generating QA tests and evidence."
|
|
|
588
602
|
codex)
|
|
589
603
|
if (
|
|
590
604
|
cd "${QA_WORKTREE_DIR}" && timeout "${MAX_RUNTIME}" \
|
|
591
|
-
codex
|
|
605
|
+
codex exec \
|
|
592
606
|
--yolo \
|
|
593
|
-
|
|
607
|
+
"${QA_PROMPT}" \
|
|
594
608
|
>> "${LOG_FILE}" 2>&1
|
|
595
609
|
); then
|
|
596
610
|
PROVIDER_OK=1
|
|
@@ -729,5 +743,4 @@ Failed automation: ${FAILED_AUTOMATION_PRS_SUMMARY}"
|
|
|
729
743
|
emit_result "failure" "prs=${FINAL_PROCESSED_PRS_CSV}|failed_pr=${FAILED_PR_SUMMARY}|reason=${FAILED_REASON}|passing=${PASSING_PRS_SUMMARY}|issues=${ISSUES_FOUND_PRS_SUMMARY}|no_tests=${NO_TESTS_PRS_SUMMARY}|failed_automation=${FAILED_AUTOMATION_PRS_SUMMARY}"
|
|
730
744
|
fi
|
|
731
745
|
fi
|
|
732
|
-
|
|
733
746
|
exit "${EXIT_CODE}"
|
|
@@ -52,7 +52,17 @@ log "CONFIG: max_runtime=${MAX_RUNTIME}s roadmap_path=${NW_ROADMAP_PATH:-ROADMAP
|
|
|
52
52
|
if ! acquire_lock "${LOCK_FILE}"; then
|
|
53
53
|
exit 0
|
|
54
54
|
fi
|
|
55
|
-
|
|
55
|
+
# ── Global Job Queue Gate ──────────────────────────────────────
|
|
56
|
+
if [ "${NW_QUEUE_ENABLED:-0}" = "1" ]; then
|
|
57
|
+
if acquire_global_gate; then
|
|
58
|
+
arm_global_queue_cleanup
|
|
59
|
+
else
|
|
60
|
+
enqueue_job "slicer" "${PROJECT_DIR}"
|
|
61
|
+
emit_result "queued"
|
|
62
|
+
exit 0
|
|
63
|
+
fi
|
|
64
|
+
fi
|
|
65
|
+
# ──────────────────────────────────────────────────────────────────────────────
|
|
56
66
|
cleanup_on_exit() {
|
|
57
67
|
rm -f "${LOCK_FILE}"
|
|
58
68
|
}
|
|
@@ -116,5 +126,4 @@ Provider (model): ${PROVIDER_MODEL_DISPLAY}
|
|
|
116
126
|
Failure reason: provider_exit_${EXIT_CODE}
|
|
117
127
|
Exit code: ${EXIT_CODE}"
|
|
118
128
|
fi
|
|
119
|
-
|
|
120
129
|
exit ${EXIT_CODE}
|
package/dist/templates/audit.md
CHANGED
|
@@ -3,6 +3,7 @@ You are the Night Watch Code Auditor. Your job is to scan the codebase for real
|
|
|
3
3
|
## What to look for
|
|
4
4
|
|
|
5
5
|
### 1) Critical runtime and security risks
|
|
6
|
+
|
|
6
7
|
1. **Empty or swallowed catches** - `catch` blocks that discard meaningful errors in non-trivial paths.
|
|
7
8
|
2. **Critical TODOs/FIXMEs/HACKs** - comments mentioning `bug`, `security`, `race`, `leak`, `crash`, `hotfix`, `rollback`, `unsafe`.
|
|
8
9
|
3. **Hardcoded secrets or tokens** - API keys, passwords, tokens in source (exclude env var references).
|
|
@@ -10,12 +11,14 @@ You are the Night Watch Code Auditor. Your job is to scan the codebase for real
|
|
|
10
11
|
5. **Unsafe type assertions** - `as any`, `as unknown as X`, dangerous non-null assertions (`!`) on uncertain input.
|
|
11
12
|
|
|
12
13
|
### 2) Scalability and performance hotspots
|
|
14
|
+
|
|
13
15
|
1. **N+1 / repeated expensive work** - repeated DB/API/file operations in loops.
|
|
14
16
|
2. **Unbounded processing** - full in-memory loading of large datasets, missing pagination/streaming/chunking.
|
|
15
17
|
3. **Blocking work on hot paths** - sync I/O or CPU-heavy work in frequent request/loop paths.
|
|
16
18
|
4. **Missing backpressure/limits** - unbounded queues, retries, fan-out, or concurrency.
|
|
17
19
|
|
|
18
20
|
### 3) Architecture and maintainability risks
|
|
21
|
+
|
|
19
22
|
1. **Architecture violations** - business logic mixed into transport/UI/glue layers; hidden cross-layer dependencies.
|
|
20
23
|
2. **SRP violations** - modules/functions/classes doing multiple unrelated responsibilities.
|
|
21
24
|
3. **DRY violations** - duplicated logic likely to drift and cause inconsistent behavior.
|
|
@@ -34,10 +37,12 @@ You are the Night Watch Code Auditor. Your job is to scan the codebase for real
|
|
|
34
37
|
## How to scan
|
|
35
38
|
|
|
36
39
|
Use file-reading/search tools and scan systematically, prioritizing:
|
|
40
|
+
|
|
37
41
|
- `src/` (core TypeScript implementation)
|
|
38
42
|
- `scripts/` (automation and shell execution paths)
|
|
39
43
|
|
|
40
44
|
For each potential issue, verify:
|
|
45
|
+
|
|
41
46
|
1. It is real and actionable.
|
|
42
47
|
2. It has concrete impact (correctness, security, scalability, operability, maintainability).
|
|
43
48
|
3. The fix direction is clear.
|
|
@@ -61,6 +66,7 @@ Generated: <ISO timestamp>
|
|
|
61
66
|
## Findings
|
|
62
67
|
|
|
63
68
|
### Finding 1
|
|
69
|
+
|
|
64
70
|
- **Location**: `src/path/to/file.ts:42`
|
|
65
71
|
- **Severity**: critical | high | medium | low
|
|
66
72
|
- **Category**: empty_catch | critical_todo | hardcoded_secret | unhandled_promise | unsafe_assertion | scalability_hotspot | architecture_violation | srp_violation | dry_violation | kiss_violation | solid_violation | yagni_violation
|
|
@@ -69,6 +75,7 @@ Generated: <ISO timestamp>
|
|
|
69
75
|
- **Suggested Fix**: Specific fix direction (minimal, pragmatic)
|
|
70
76
|
|
|
71
77
|
### Finding 2
|
|
78
|
+
|
|
72
79
|
...
|
|
73
80
|
```
|
|
74
81
|
|
package/dist/templates/qa.md
CHANGED
|
@@ -3,6 +3,7 @@ You are the Night Watch QA agent. Your job is to analyze open PRs, generate appr
|
|
|
3
3
|
## Context
|
|
4
4
|
|
|
5
5
|
You are running inside a worktree checked out to a PR branch. Your goal is to:
|
|
6
|
+
|
|
6
7
|
1. Analyze what changed in this PR compared to the base branch
|
|
7
8
|
2. Determine if the changes are UI-related, API-related, or both
|
|
8
9
|
3. Generate appropriate tests (Playwright e2e for UI, integration tests for API)
|
|
@@ -10,6 +11,7 @@ You are running inside a worktree checked out to a PR branch. Your goal is to:
|
|
|
10
11
|
5. Commit the tests and artifacts, then comment on the PR with results
|
|
11
12
|
|
|
12
13
|
## Environment Variables Available
|
|
14
|
+
|
|
13
15
|
- `NW_QA_ARTIFACTS` — What to capture: "screenshot", "video", or "both" (default: "both")
|
|
14
16
|
- `NW_QA_AUTO_INSTALL_PLAYWRIGHT` — "1" to auto-install Playwright if missing
|
|
15
17
|
|
|
@@ -18,6 +20,7 @@ You are running inside a worktree checked out to a PR branch. Your goal is to:
|
|
|
18
20
|
### Step 1: Analyze the PR diff
|
|
19
21
|
|
|
20
22
|
Get the diff against the base branch:
|
|
23
|
+
|
|
21
24
|
```
|
|
22
25
|
git diff origin/${DEFAULT_BRANCH}...HEAD --name-only
|
|
23
26
|
git diff origin/${DEFAULT_BRANCH}...HEAD --stat
|
|
@@ -28,6 +31,7 @@ Read the changed files to understand what the PR introduces.
|
|
|
28
31
|
### Step 2: Classify and Decide
|
|
29
32
|
|
|
30
33
|
Based on the diff, determine:
|
|
34
|
+
|
|
31
35
|
- **UI changes**: New/modified components, pages, layouts, styles, client-side logic
|
|
32
36
|
- **API changes**: New/modified endpoints, controllers, services, middleware, database queries
|
|
33
37
|
- **Both**: PR touches both UI and API code
|
|
@@ -36,6 +40,7 @@ Based on the diff, determine:
|
|
|
36
40
|
### Step 3: Prepare Test Infrastructure
|
|
37
41
|
|
|
38
42
|
**For UI tests (Playwright):**
|
|
43
|
+
|
|
39
44
|
1. Check if Playwright is available: `npx playwright --version`
|
|
40
45
|
2. If not available and `NW_QA_AUTO_INSTALL_PLAYWRIGHT=1`:
|
|
41
46
|
- Run `npm install -D @playwright/test` (or yarn/pnpm equivalent based on lockfile)
|
|
@@ -43,12 +48,14 @@ Based on the diff, determine:
|
|
|
43
48
|
3. If not available and auto-install is disabled, skip UI tests and note in the report
|
|
44
49
|
|
|
45
50
|
**For API tests:**
|
|
51
|
+
|
|
46
52
|
- Use the project's existing test framework (vitest, jest, or mocha — detect from package.json)
|
|
47
53
|
- If no test framework exists, use vitest
|
|
48
54
|
|
|
49
55
|
### Step 4: Generate Tests
|
|
50
56
|
|
|
51
57
|
**UI Tests (Playwright):**
|
|
58
|
+
|
|
52
59
|
- Create test files in `tests/e2e/qa/` (or the project's existing e2e directory)
|
|
53
60
|
- Test the specific feature/page changed in the PR
|
|
54
61
|
- Configure Playwright for artifacts based on `NW_QA_ARTIFACTS`:
|
|
@@ -59,6 +66,7 @@ Based on the diff, determine:
|
|
|
59
66
|
- Include at minimum: navigation to the feature, interaction with key elements, visual assertions
|
|
60
67
|
|
|
61
68
|
**API Tests:**
|
|
69
|
+
|
|
62
70
|
- Create test files in `tests/integration/qa/` (or the project's existing test directory)
|
|
63
71
|
- Test the specific endpoints changed in the PR
|
|
64
72
|
- Include: happy path, error cases, validation checks
|
|
@@ -67,11 +75,13 @@ Based on the diff, determine:
|
|
|
67
75
|
### Step 5: Run Tests
|
|
68
76
|
|
|
69
77
|
**UI Tests:**
|
|
78
|
+
|
|
70
79
|
```bash
|
|
71
80
|
npx playwright test tests/e2e/qa/ --reporter=list
|
|
72
81
|
```
|
|
73
82
|
|
|
74
83
|
**API Tests:**
|
|
84
|
+
|
|
75
85
|
```bash
|
|
76
86
|
npx vitest run tests/integration/qa/ --reporter=verbose
|
|
77
87
|
# (or equivalent for the project's test runner)
|
|
@@ -82,6 +92,7 @@ Capture the test output for the report.
|
|
|
82
92
|
### Step 6: Collect Artifacts
|
|
83
93
|
|
|
84
94
|
Move Playwright artifacts (screenshots, videos) to `qa-artifacts/` in the project root:
|
|
95
|
+
|
|
85
96
|
```bash
|
|
86
97
|
mkdir -p qa-artifacts
|
|
87
98
|
# Copy from playwright-report/ or test-results/ to qa-artifacts/
|
|
@@ -150,6 +161,7 @@ Video artifact committed to \`qa-artifacts/\` — view in the PR's file changes.
|
|
|
150
161
|
```
|
|
151
162
|
|
|
152
163
|
### Important Rules
|
|
164
|
+
|
|
153
165
|
- Process each PR **once** per run. Do NOT loop or retry after pushing.
|
|
154
166
|
- Do NOT modify existing project tests — only add new files in `qa/` subdirectories.
|
|
155
167
|
- If tests fail, still commit and report — the failures are useful information.
|