Commit Graph
7106 Commits
Author SHA1 Message Date
morluto 46d79ecd78 fix(ida): retain HTTP response cleanup through close (#9975)
* fix(http): retain response cleanup through connection close

* fix(ida): cancel acquired diagnostics during close
2026-11-11 17:23:44 +08:00
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 4d0f6d9b42 fix(ci): retain Hopper fixture receipt counts (#9976) 2026-11-11 17:22:14 +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
morluto ea00ca2d46 fix(verify): preserve Ghidra oracle state and coverage (#9994)
* fix(verify): check checkpoint state before restoring fixtures

* fix(verify): require applicable Ghidra decoder controls

* refactor(verify): require explicit instruction fixture facts
2026-11-11 17:21:11 +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 d54a41152e test(cli): capture effective status and restore host exit state (#9991) 2026-11-11 17:20:37 +08:00
morluto 9e79188ba8 fix(electron): install session permission policy on admission (#9989)
fix(electron): enforce session permission defaults and download identity
2026-11-11 17:20:22 +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
morluto 38a0dafa76 fix(verify): bind managed manifest facts to stable snapshots (#10004) 2026-11-11 17:19:55 +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 7f0555b75e fix(verify): reject unknown Android guardian cleanup observations (#10001) 2026-11-11 17:19:03 +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
morlutoandCursor Agent 66498b4f7c fix(agentenv): bind solve results to the named verifier (#9978)
* 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>
2026-11-11 17:16:09 +08:00
morluto e6114e81dc test(mcp): require unknown-key admission diagnostics (#9985) 2026-11-11 17:16:02 +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