Commit Graph
5516 Commits
Author SHA1 Message Date
morluto e5fe737677 fix(native): preserve source graph coverage through UI tracing (#10030)
* fix(native): preserve graph truncation through UI tracing

* fix(native): preserve source and local trace cutoff causes
2026-11-11 17:23:37 +08:00
morlutoandCursor Agent 6151e13835 fix(browser): preserve independently observed storage identities (#10029)
fix(browser): retain partial storage identity evidence

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-11-11 17:22:30 +08:00
morlutoand帅鑫 Huang dd928466cb fix(desktop): admit ELF library identities before selection (#9981)
* fix(desktop): admit ELF library identities before selection

Preserve known library identity through later metadata failures, skip proven
foreign candidates, and keep unknown candidate selection unresolved.

Restore the reviewed repair from closed PR #9875 against pinned main,
including the original producer and inventory regression cases.

Co-authored-by: 帅鑫 Huang <1836656514@qq.com>

* fix(desktop): search compatible linker cache candidates

---------

Co-authored-by: 帅鑫 Huang <1836656514@qq.com>
2026-11-11 17:22:23 +08:00
morluto f6e31acd74 fix(gpu): distinguish AMD metadata capacity from corruption (#9979) 2026-11-11 17:21:45 +08:00
morlutoand帅鑫 Huang 59e36cf86e fix(elf): preserve unwind LEB128 signs and reject overflow (#9980)
Validate the final 64-bit payload before interpreting unwind LEB operands,
and retain valid ten-byte signed padding. Keep invalid records incomplete
without discarding independent valid FDEs.

Adapted from ShuaixinHuang’s closed PR #9872, original head
021ab3ad62. Original fixture, regression
and documentation changes are retained; decoder comments are shortened.

Co-authored-by: 帅鑫 Huang <1836656514@qq.com>
2026-11-11 17:21:38 +08:00
morlutoandCursor Agent e504e09aeb fix(elf): keep compressed storage out of decoded metadata facts (#9892)
* fix(elf): keep compressed storage out of decoded metadata facts

* fix(elf): admit compressed string tables the profile does not read

SHF_COMPRESSED string tables are rejected only when they name sections
or symbols. An unreferenced string table is not decoded, so it no longer
makes an otherwise analyzable ELF unsupported.

* fix(elf): keep requirement names when verdef declares no entries

A compressed GNU version-definition section with sh_info 0 has no
definitions to decode. Skipping it leaves requirement names in place
instead of clearing them as an unread compressed table.

* fix(elf): skip empty version requirements before storage reads

* fix(elf): skip empty compressed version-requirement tables

A GNU verneed section with sh_info 0 has no requirement records. Reading
its compressed bytes was a version failure and partial coverage; the
declared count now skips that read.

* fix(mips): distinguish compressed metadata storage (#9959)

* fix(elf): note a missing symbol table only when a relocation needs it

A sectionless image with direct DT_INIT and DT_FINI no longer becomes incomplete solely because DT_SYMTAB does not match a decoded table. The same note remains when a dynamic relocation asks for a symbol.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-11-11 17:21:19 +08:00
morlutoandCursor Agent aece2e7e16 fix(process): preserve ownership through termination and cleanup (#9891)
* fix(process): revalidate ownership before signaling

* fix(process): retain cleanup ownership until completion

* fix(process): keep omitted live descendants unresolved

A non-empty process table that omits a retained live PID cannot authorize a signal or certify cleanup. An empty table can still describe a token-verified owner.

* fix(process): read omitted Darwin run tokens by PID

A live identity that ps omitted was still validated through Darwin
environment(), which rejects any PID absent from a second process table.
Ask the native reader for that PID directly so the launch token can bind.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-11-11 17:20:53 +08:00
morluto 1c7d7b6cc3 docs(skill): correct offline inspection descriptions and guidance (#9992)
* docs(skill): align offline inspection guidance with current contracts

* docs(apple): describe actual IPS image join criteria
2026-11-11 17:20:45 +08:00
morluto e7c4a26316 fix(native): retain command cleanup across source finalization (#10009) 2026-11-11 17:20:14 +08:00
morluto 12a32d934a fix(artifacts): retain Deno member streams through finalization (#10007) 2026-11-11 17:20:03 +08:00
morlutoandCursor Agent df25c923c4 fix(providers): reject malformed UTF-8 bridge responses (#10034)
* 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>
2026-11-11 17:19:47 +08:00
morluto 3896f72552 fix(environment): preserve null bodies and unique member matches (#10014) 2026-11-11 17:19:37 +08:00
morluto 44ef32c1c0 fix(binary): seal session admission during shutdown (#10012)
fix(session): seal binary work admission during shutdown
2026-11-11 17:19:24 +08:00
morlutoandCursor Agent 5b02119b69 fix(native): bind initializer evidence to selected Mach-O slices (#10013)
* 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>
2026-11-11 17:19:16 +08:00
morluto 4812843e5b fix(gdb): preserve MI framing and reject lossy result facts (#9982) 2026-11-11 17:18:18 +08:00
morluto e55ce72d9d fix(cli): cancel reference source imports through cleanup (#9954)
* fix(cli): retain cancellation observed during final cleanup

* fix(cli): cancel reference source imports through cleanup

* fix(cli): preserve signal status through command logging
2026-11-11 17:18:05 +08:00
morluto 34d844dcad fix(analysis): preserve batch facts when traversal stops (#9955) 2026-11-11 17:17:58 +08:00
morluto 98bc82f1e1 fix(capabilities): include optional composed source effects (#9956)
* fix(capabilities): include optional composed source effects

* fix(capabilities): declare prior engine retirement effects
2026-11-11 17:17:51 +08:00
morluto f2e73ca8b6 fix(desktop): preserve cancellation and portable name contracts (#10074)
* fix(desktop): preserve cancellation during reader cleanup

* fix(contracts): advertise portable name restrictions
2026-11-11 17:17:39 +08:00
morluto 876bc145a7 fix(wasm): retain cancellation during failed inspection finalization (#9983) 2026-11-11 17:17:26 +08:00
morlutoandCursor Agent bb200646e5 fix(views)!: distinguish unavailable artifact collections (#9893)
* 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>
2026-11-11 17:17:18 +08:00
morlutoandCursor Agent 17b91a9853 fix(firmware): distinguish empty ESP flash partitions from missing bytes (#9907)
* 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>
2026-11-11 17:17:09 +08:00
morluto fcd364069a fix(apple): retain Interface Builder facts during finalization (#9953) 2026-11-11 17:17:01 +08:00
morluto e9e106f580 fix(artifacts): reject stopped Mach-O slice traversals (#9952) 2026-11-11 17:16:54 +08:00
morluto fcc353518a fix(managed): preserve completed imports on retention refusal (#9962) 2026-11-11 17:16:46 +08:00
morluto 2b570ae194 fix(managed): validate the complete declared CLI header extent (#9968) 2026-11-11 17:16:16 +08:00
morluto ecf6ac9f8d fix(electron): admit provider reports and bind selected inputs (#10041)
* fix(electron): admit runtime observations before publishing evidence

* fix(electron): retain passive observation source JSON
2026-11-11 17:15:54 +08:00
morluto 550b7df262 fix(browser): admit provider reports and preserve source evidence (#10037)
* fix(browser): admit observations before promoting evidence

* fix(browser): retain admitted source JSON in evidence

* test(browser): verify source retention preserves producer redaction
2026-11-11 17:15:47 +08:00
morluto ca7c263dd6 fix(browser): admit query expansion and guard saved-value publication (#10052)
fix(browser): admit query expansion and active response saves
2026-11-11 17:15:40 +08:00
morluto 2e67d57d0f fix(browser): distinguish shutdown admission from failed cleanup (#10038) 2026-11-11 17:15:15 +08:00
morluto 81d4f6b42a fix(runtime): bind Inspector evidence to the selected request (#10039) 2026-11-11 17:15:08 +08:00
morluto dd522bf9a7 fix(process): derive group settlement from completed native facts (#10043)
fix(process): settle native-confirmed absent group members
2026-11-11 17:15:02 +08:00
morluto 55c746afaf fix(browser): preserve SAZ source member provenance (#10050)
fix(browser): preserve SAZ archive source provenance
2026-11-11 17:14:56 +08:00
morluto 08d943ea29 fix(wasm): reject malformed UTF-8 in successful WABT output (#10042) 2026-11-11 17:14:50 +08:00
morluto 27ced7bdef fix(browser): bind child artifact errors to exact cleanup leases (#10047)
fix(browser): bind child artifact errors to cleanup completion
2026-11-11 17:14:44 +08:00
morluto 979552aa5c fix(browser): retain initialization through cancelled startup (#10045)
fix(browser-scenario): retain startup work through cancellation
2026-11-11 17:14:37 +08:00
morluto 36334402de fix(browser): preserve module analysis ownership through cleanup (#10051) 2026-11-11 17:14:30 +08:00
morluto ba4fb6a806 fix(javascript): preserve exact native export facts (#10059)
fix(javascript): preserve exact native export names and unknown identity
2026-11-11 17:14:24 +08:00
morluto 4073cfc932 fix(electron): honor ordered switch-case completion in call paths (#10057)
fix(electron): honor switch-case completion in wrapper paths
2026-11-11 17:14:16 +08:00
morluto 827b808248 fix(captures): reject malformed UTF-8 command output (#10056)
fix(captures): reject malformed UTF-8 producer text
2026-11-11 17:14:02 +08:00
morluto 4de8020745 fix(pyinstaller): account for one-byte name expansion (#10058) 2026-11-11 17:13:54 +08:00
morluto 9cd1eadfb7 fix(browser): reject malformed UTF-8 CDP protocol bytes (#10040) 2026-11-11 17:13:45 +08:00
morluto 8c40ba78de fix(pe): validate SignedData version INTEGER content (#10054)
fix(pe): validate SignedData version integer encoding
2026-11-11 17:13:40 +08:00
N0zoM1z0andgensokyo-dev 626c705c99 fix(pe): classify declared legacy Windows signatures at header admission
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>
2026-11-11 17:11:06 +08:00
N0zoM1z0andgensokyo-dev c9e7aaca27 test(pe): reproduce legacy Windows target misclassification
Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-11 17:11:06 +08:00
morluto 914363fbfb fix(browser-scenario): summarize all captured numeric statuses (#9936)
* fix(browser-scenario): summarize all captured numeric statuses

* test(browser-scenario): position status regression before view groups
2026-11-11 04:10:58 -05:00
morlutoandCursor Agent 77100250de fix(desktop)!: preserve build evidence and validate task inputs (#9898)
* 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>
2026-11-11 04:10:44 -05:00
morlutoandCursor Agent a7ec7271d6 fix(setup): preserve client configuration and ownership (#9894)
* 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>
2026-11-11 04:10:32 -05:00
N0zoM1z0andgensokyo-dev 1f2a869e5b fix(reference): preserve directory intent through portable target rebasing
Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-11 16:52:07 +08:00
N0zoM1z0andgensokyo-dev 8e11a430cf fix(reference): scope missing directory targets before retaining their suffix
Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-11 16:52:07 +08:00