You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v3.0.10: Harden experiment-loop with error handling, input validation, and schema fixes
- Wrap ensureParent/appendJsonl/clearStopFile in try-catch with descriptive errors
- gitAutoCommit returns {ok, error} and warns on stderr; add commitOk to log output
- Validate --timeout-ms bounds (1s-1h), clamp to default if out of range
- runChecks detects SIGTERM/SIGKILL/ETIMEDOUT; add checksTimedOut to run output
- Validate --secondary metric values are finite numbers
- Add validateExperimentEntry for per-type required field checks before JSONL write
- Standardize fix-strategy severity enum to title-case (matches shared.schema.json)
- Add allOf/if/then to experiment.schema.json for IDE/CI validation
- 12 new tests (113 total, 0 failures)
Copy file name to clipboardExpand all lines: CHANGELOG.md
+20Lines changed: 20 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [3.0.10] - 2026-03-14
9
+
10
+
### Fixed
11
+
-`experiment-loop.cjs`: `ensureParent()` and `appendJsonl()` now have try-catch protection with descriptive error messages — previously, disk-full or permission errors threw cryptic Node.js exceptions
12
+
-`experiment-loop.cjs`: `clearStopFile()` handles ENOENT race condition — if stop file is removed between `existsSync` and `unlinkSync`, the error is ignored instead of crashing
13
+
-`experiment-loop.cjs`: `gitAutoCommit()` returns `{ ok, error }` and logs warnings to stderr on failure — previously swallowed all errors silently
14
+
-`experiment-loop.cjs`: `gitCommitHash()` logs a warning to stderr on failure — still returns `'unknown'` for backward compatibility
15
+
-`experiment-loop.cjs`: `cmdRun()` validates `--timeout-ms` bounds (1s–1h) — previously accepted negative, zero, or absurdly large values
16
+
-`experiment-loop.cjs`: `runChecks()` detects SIGTERM/SIGKILL/ETIMEDOUT timeouts — previously, a timed-out checks script was reported as `passed: false` with no timeout indicator
17
+
-`experiment-loop.cjs`: `cmdLog()` validates that all `--secondary` metric values are finite numbers — previously accepted strings, nulls, and other non-numeric types
18
+
-`fix-strategy.schema.json`: `maxSeverity` enum standardized to `["Critical","High","Medium","Low"]` — removed redundant uppercase variants inconsistent with all other schemas
19
+
20
+
### Added
21
+
-`experiment-loop.cjs`: `commitOk` field in `log` command output — surfaces whether the auto-commit succeeded
22
+
-`experiment-loop.cjs`: `checksTimedOut` field in `run` command output — indicates whether the checks script hit the 5-minute timeout
23
+
-`experiment-loop.cjs`: `validateExperimentEntry()` function — validates JSONL entries before writing, enforcing per-type required fields
Copy file name to clipboardExpand all lines: package.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "@codexstar/bug-hunter",
3
-
"version": "3.0.9",
3
+
"version": "3.0.10",
4
4
"description": "Adversarial AI bug hunter — multi-agent pipeline finds security vulnerabilities, logic errors, and runtime bugs, then fixes them autonomously. Works with Claude Code, Cursor, Codex CLI, Copilot, Kiro, and more.",
0 commit comments