* fix(providers): reject malformed UTF-8 bridge responses
* fix(providers): release a drained NDJSON frame's backing buffer
A response that ends on its newline left an empty view of the whole
concatenated allocation. Provider clients keep the line buffer for the
session, so that frame stayed resident. Replace an exhausted tail with
an empty allocation and keep a real unconsumed tail.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* fix(native): bind initializer evidence to selected Mach-O slices
* fix(native): reject initializer slices outside the artifact
* test(native): retain completed initializer evidence on late cancellation
completeProviderEvidence keeps the finished report on
AnalysisCancelledError.partialObservation and the caller's abort reason.
The regression only checked the error tag, so dropping that evidence
would pass. Restore both structured assertions.
* fix(native): bind initializer facts to the selected slice label and range
A universal report could keep an arm64 cpu_type beside an x86_64 slice
label, and entry file offsets only had to fall inside the container.
Require the slice architecture to match the request, and require each
slot and value file offset to lie in that slice.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* fix(cli): retain cancellation observed during final cleanup
* fix(cli): cancel reference source imports through cleanup
* fix(cli): preserve signal status through command logging
* fix(views)!: distinguish unavailable artifact collections
Keep missing BEAM tables and unavailable Go and Rust build metadata
separate from decoded empty collections. Retain producer limitations
on model metadata, tensor, and type pages.
BREAKING CHANGE: BEAM, Go, and Rust analysis view pages for unavailable
collections now report coverage.status "unavailable", coverage.total
null, and coverage.exhausted false. Refresh saved result schemas and
handle unknown totals before using coverage to infer absence.
* test(views): expect unavailable Go dependency pages
Missing Go build metadata is unavailable coverage, so the MCP page reports a null total instead of an empty collection.
* test(fixtures): ignore a torn build-computer note line
The cancellation test reads the helper's note file while the append is
still in progress. An empty file or an unfinished last line is not a
record yet. A completed line still has to parse.
* fix(fixtures): reject terminated malformed build-computer notes
Trim removed the final newline, so a completed corrupt record looked like
a torn append and the preceding notes were returned. Keep the terminator
and parse every finished line.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* fix(firmware): distinguish empty ESP flash partitions from missing bytes
* fix(firmware): keep empty ESP partitions that start before the dump
A zero-byte partition below the selected flash origin was reported as
unread and omitted from the inventory. It declares no bytes to read, so
the plan keeps the empty region and the zero-byte diagnostic.
* fix(firmware): clamp an empty partition before the flash origin
A zero-byte partition below the selected origin has no file bytes. Its
inventory offset is the start of the carrier, which stays nonnegative.
* fix(firmware): clamp empty ESP entries that start before the dump
A zero-byte partition below the caller origin kept a negative file
offset, which the inventory published as a negative source location.
The empty entry now sits at the start of the carrier.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* fix(agentenv): bind solve results to the named verifier
* fix(agentenv): retain a planned solve pass through selected-verifier binding
Cleanup and cancellation tests plan a completed pass with no criterion
rows. An empty selected-verifier result list is unscored, so those
reports lost outcome passed even though sandbox retention and the
cancellation cause were unchanged. Record one selected result for a
planned pass or miss so the bound outcome stays the planned one.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Keep opportunistic resource probes outside unadmitted PE layouts; move repeated malformed controls to the public adapter matrix.
Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
* fix(desktop)!: preserve build evidence and validate task inputs
BREAKING CHANGE: Witnessing requires the current generated verifier. Re-export bundles with older evaluators using the original capture Evidence and task inputs.
* test(desktop): match reader source inspection diagnostics
Unreadable reader sources now report the source inspection failure, including the operating-system reason, instead of the old file wording.
* fix(environment): advertise canonical bundle names (#9939)
fix(environment): advertise portable bundle name constraints
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* fix(config): preserve client settings during launcher refresh
* fix(setup): retain parsed client launcher ownership
* fix(uninstall): retain resource cleanup diagnostics
* test(setup): keep temporary paths inside the workspace root
Resolve setup fixtures through the test workspace path helper so joined paths stay under the temporary root.
* test(setup): validate temporary paths before filesystem calls
Contain workspace children and the symlink target before creating the launcher alias so a temporary path cannot leave its root.
* test(setup): expect owned command identity in BOM registration status
Aligned client registration status includes command_identity. The BOM
read-back compared the status without that field, so an owned launcher
failed the equality check.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>