* fix: abort invalid JSON parses and keep retained worker owners
Main (7375ab6e3) fails four boundary tests from its latest batch.
- f79fd59e9 moved JSON value validation into a non-aborting superRefine, so
authenticated Evidence still computed its recursive identity digest over
a 10,000-level `parameters` value and overflowed the stack. The process
comparison CLI then reported "Maximum call stack size exceeded" instead of
the depth limit. Abort the parse on a JSON validation issue so enclosing
refinements never walk invalid data.
- runOwnedCommand retains an incomplete cleanup through retainCleanup and
then rethrows the command failure without a cleanupOwner. The EVM and SQLite
providers replaced their retained owner with that undefined value, so an
output-limit failure with unresolved cleanup lost cleanupIncomplete and its
owner. Keep the retained owner unless the failure carries one.
- The EVM malformed-reply test expected a nonexistent `output_failure` code;
AnalysisOutputError projects to `unreadable_output`. The pcap capinfos stub
prints its report with a trailing newline, which retained output preserves.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* test(sqlite): keep a retained worker owner after a failed worker exit
Cover the path the existing worker-cleanup test bypasses: a real owned worker
exits nonzero, runOwnedCommand retains its incomplete cleanup and rethrows the
failure without a cleanupOwner. The provider must still report
cleanupIncomplete and block a new worker until the retained cleanup succeeds.
Fails on the previous owner assignment.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(evm): retain the compact worker failure beside retained cleanup
When the worker command fails and its cleanup is retained, the cleanup error
now reports the primary failure in the same compact form as an unretained
command cleanup failure: failure kind, message, exit code and signal. Its
output is already retained once as captured_output, so the previous error no
longer repeats up to a megabyte of diagnostics, and failure_kind stays at the
top level that the provider test reads. Both paths share
ownedCommandPreviousError.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>