Commit Graph
7173 Commits
Author SHA1 Message Date
Cursor Agent 7fe465505f fix(limits): keep bracket-access reads in numeric-limit discovery
A quoted name after an identifier, call, or optional chain is a producer. Only declaration arrays and comments stay out of discovery.
2026-11-11 19:39:06 +08:00
Cursor Agent f2d55aba7b fix(limits): ignore allowlists and require tracked limits to be settings
Discovery no longer treats comments or registration-list entries as producers. The three limits moving on their own PRs must join ANALYSIS_SETTINGS; the exception registry cannot classify them.
2026-11-11 19:39:06 +08:00
Cursor Agent 710d2af41c fix(limits): classify endpoint candidates and ignore registry declarations
The numeric-limit check now treats REA_WEB_BUNDLE_ENDPOINT_LITERAL_CANDIDATES as a count limit and does not count registry text as a producer.
2026-11-11 19:39:06 +08:00
Cursor Agent 3b39991b02 ci(limits): inventory numeric REA_ limits and check them
Part of #9881. Record every numeric REA_ limit and fail static checks when one is neither a runtime analysis setting nor a documented exception with a reason.
2026-11-11 19:39:06 +08:00
morluto 0e0af455f2 fix(reference): preserve physical failures across late cancellation (#10072)
* fix(reference): preserve physical failures across late cancellation

* fix(reference): retain late cancellation alongside read failures

* fix(reference): preserve metadata errors through cancellation

* fix(reference): retain directory failure identity

* fix(reference): preserve parallel physical and cancellation outcomes

* fix(reference): preserve optional Git metadata absence
2026-11-11 18:53:08 +08:00
morluto 3ad2e214be fix(verifier): retain UF2 workspace until resource cleanup completes (#10096)
* fix(verifier): retain UF2 workspace until resource cleanup completes

* fix(verifiers): retain firmware workspace cleanup ownership
2026-11-11 18:53:02 +08:00
morluto c1c7a78117 fix(browser): retain source-map cleanup and discarded-map capacity (#10053)
* fix(browser): retain source-map cleanup and discarded-map capacity

* fix(browser): retain source map fetch and response cleanup

* fix(browser): retain response when deadline precedes body read
2026-11-11 18:38:52 +08:00
morluto 84041fff23 fix(process): retain cleanup ownership through input finalization (#10095) 2026-11-11 18:37:29 +08:00
morluto 4a3bc37b76 fix(browser): preserve physical failures through later cancellation (#10046)
* fix(browser): retain physical failures through late cancellation

* fix(browser): preserve process inspection cancellation and ownership

* fix(process): preserve independently aborted inspection failures
2026-11-11 18:37:09 +08:00
morluto a16f5f4b5d fix(recovery): preserve bounded Wakaru failure and cleanup facts (#10087)
* fix(javascript): retain Wakaru diagnostics and cleanup ownership

* fix(recovery): preserve launch failure with late cancellation

* fix(recovery): retain cancellation through provider cleanup
2026-11-11 18:36:09 +08:00
morluto 8a2eb4ab61 fix(source-maps): preserve decoder lifecycle facts (#10069)
* fix(source-maps): preserve decoder lifecycle facts

* fix(source-maps): preserve preparation failure on cancellation

* fix(source-maps): retain preparation and retry cleanup facts
2026-11-11 18:36:02 +08:00
morluto d36ba58971 fix(native): retain NativeAOT frozen scan budget stops (#10094) 2026-11-11 18:34:39 +08:00
morluto 2d80427422 fix(native): preserve cancellation during signature admission (#10093)
* fix(native): preserve cancellation during snapshot admission

* fix(native): retain cancellation during cleanup retry
2026-11-11 18:34:32 +08:00
morluto 94dd7b72f8 fix(flutter): preserve producer-attested cancellation and physical failures (#10089)
* fix(flutter): preserve physical failures and cancellation identity

* fix(flutter): preserve independent abort-shaped failures

* fix(flutter): retain cancellation through failed cleanup
2026-11-11 18:32:32 +08:00
morluto 20aeaf110f fix(javascript): preserve incomplete package and artifact identity facts (#10032)
fix(javascript): preserve artifact identity and manifest uncertainty
2026-11-11 05:28:59 -05:00
morluto 15d08235e1 fix(native): own NativeAOT budgets per operation (#10067)
fix(native): isolate NativeAOT operation budgets
2026-11-11 18:27:08 +08:00
morluto e9f12d212c fix(layout): validate numeric ELF type identities (#10092) 2026-11-11 18:26:22 +08:00
morluto 12a916b255 fix(native): retain completed signature facts after cleanup failure (#10076)
* fix(native): retain completed signature facts after cleanup failure

* fix(native): retain cancellation after signature failure
2026-11-11 18:25:57 +08:00
N0zoM1z0andgensokyo-dev c80e6cd845 fix(native): require retained Evidence before registering alias identity
Validate the Evidence owner on every successful dossier before canonical deduplication. Preserve the unowned alias observation in the typed refusal.

Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-11 18:24:58 +08:00
N0zoM1z0andgensokyo-dev ca268ead0a fix(native): finalize repeated call destinations once
Preserve resolution rows while coalescing identical binding tasks before input-index expansion. A 16-target fixture retains one gap group and one argument binding.

Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-11 18:24:58 +08:00
N0zoM1z0andgensokyo-dev 073b4dcc41 docs(native): explain located call-input binding unknowns
Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-11 18:24:58 +08:00
N0zoM1z0andgensokyo-dev 87cd7070b6 test(native): cover call-input gaps through paging, budgets and MCP
Verify canonical aliases, parameter and edge refusal, provider truncation, zero-argument calls, source Evidence closure and historical snapshot profiles.

Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-11 18:24:58 +08:00
N0zoM1z0andgensokyo-dev 3dced80300 fix(native): locate recovered call inputs without parameter bindings
Group exact input indices with caller Evidence after complete parameter examination; preserve budget uncertainty and advance the trace workflow profile.

Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-11 18:24:58 +08:00
N0zoM1z0andgensokyo-dev a77e02788e fix(native): bind call dependencies through analyzed procedure identities
Move binding finalization into one owner; preserve exact callee selectors while indexing retained parameter and return nodes by the dossier address.

Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-11 18:24:58 +08:00
N0zoM1z0andgensokyo-dev 47704ab093 test(native): reproduce unlocated call inputs and named-callee binding loss
Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-11 18:24:58 +08:00
morluto 930c56d670 fix(native)!: enforce paired Swift literal coverage in shared dossiers (#10068)
* fix(native)!: enforce paired Swift literal coverage in shared dossiers

BREAKING CHANGE: Retained function dossiers containing only one Swift inventory are rejected. Regenerate observations through a canonical provider; both-absent unsupported observations remain valid.

* fix(contracts): advertise paired Swift literal coverage
2026-11-11 18:23:45 +08:00
morlutoandCursor Agent cb17828dd1 fix(reference): retain proven loader calls and unresolved targets (#9920)
* fix(reference): retain proven loader calls and unresolved targets

* refactor(reference): remove unused ancestor lookup

* fix(reference): drop loader calls that return a reassigned member

An immediate call could still use a member's original require initializer
because mutation facts were not built for a call-valued callee. A definite
assignment that precedes the call now replaces that initializer.

* fix(reference): select returned loaders from indexed read facts

* fix(reference): refresh loader facts for wrapped returned members

A sequence such as (0, box.load) still used the original require
initializer. Follow sequence, conditional, and logical returns to the
member before deciding whether a prior assignment replaced it.

* test(reference): record unresolved CommonJS targets in source evidence

unknown.cjs calls require with a non-literal target. The inventory now
keeps that coverage limitation on the file entry, and the boundary
fixture asserts it beside the resolved member relationships.

* fix(reference): cover opaque apply lists and assigned returned members

require.apply(null, args) has no normalized argument list, so the
inventory now records an unresolved target instead of complete coverage.
An assignment return such as f = box.load is followed to the member
before a prior replacement is trusted.

* fix(reference): keep self-defaulted module delegates loadable

Timing a member read at a later call made `box.load = box.load || null` observe its own write and drop the native delegate. Reads that already fed an earlier assignment stay at the member.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-11-11 18:23:15 +08:00
morluto d9537fc75c fix(native): validate ELF section backing against its type (#10066)
fix(native): reject contradictory ELF section backing
2026-11-11 05:22:25 -05:00
morluto 34025d2fcd fix(managed): derive native platform facts before symbol matching (#10090)
fix(managed): derive native verification platform at intake
2026-11-11 18:22:09 +08:00
morluto 98f796c991 fix(json): preserve cancellation through input finalization (#10022)
* fix(json): preserve owned stream cancellation facts

* fix(process): classify completion after input cleanup

* fix(process): retain typed failures through input cleanup

* fix(process): preserve late cancellation through failed input cleanup
2026-11-11 05:22:00 -05:00
morluto 389b69d097 fix(evidence): preserve APK and Android execution provenance (#10021)
* fix(evidence): preserve APK and Android execution provenance

* docs(apktool): clarify decoded string table observations
2026-11-11 05:19:58 -05:00
morluto 913c9fe194 fix(adb): preserve exact transport identity observations (#10062) 2026-11-11 18:18:35 +08:00
morluto 3eb502ae5d fix(javascript)!: bind runtime identities to capture evidence (#10063)
fix(javascript)!: bind runtime graph identities to capture Evidence
2026-11-11 18:18:22 +08:00
morluto b4d501e714 fix(frida): preserve partial facts when redacted keys collide (#10071)
fix(frida): retain partial facts on redacted key collisions
2026-11-11 18:18:15 +08:00
morluto 50740bb05e fix(evm): report shutdown admission as unavailable (#10075)
fix(evm): classify shutdown admission as unavailable
2026-11-11 18:18:08 +08:00
morluto fd9d362d98 fix(firmware): derive nested coverage from each reported file (#10077)
* fix(firmware): account for unclassified nested file bytes

* fix(firmware): describe nested gaps without invented chunk facts
2026-11-11 18:18:00 +08:00
morluto 2f87d3edb8 fix(process)!: require stored symlink target bytes (#10082)
* fix(process)!: require stored symlink target bytes

* fix(process): retain symlink failures before cancellation
2026-11-11 18:17:53 +08:00
morluto 01707fcbde fix(javascript): preserve unknown export-shape comparisons (#10060) 2026-11-11 18:17:46 +08:00
morluto 5b5990f7a9 fix(views): preserve application provenance and field omission (#10061)
fix(views): preserve canonical JavaScript provenance
2026-11-11 18:17:39 +08:00
morluto 61e3eb3ca7 fix(cutter): reject malformed UTF-8 protocol bytes (#10064)
fix(cutter): reject malformed UTF-8 before protocol admission
2026-11-11 18:17:31 +08:00
morluto a14a0c20ed fix(javascript): authenticate transfer bytes before decoding (#10078)
fix(javascript): authenticate raw analysis transfer bytes
2026-11-11 18:17:13 +08:00
morluto d1895841a4 fix(javascript): recover GraphQL selection prefixes and validate names (#10065)
fix(javascript): align GraphQL operation grammar
2026-11-11 18:16:50 +08:00
morluto f7d564f436 fix(javascript): preserve exact native-addon extension dispatch (#10083)
fix(javascript): preserve native addon extension spelling
2026-11-11 18:16:43 +08:00
morluto 0ece957589 fix(native): honor selected UI deadlines in owned runtimes (#10079)
fix(native-ui): apply the selected deadline to owned runtime
2026-11-11 18:16:27 +08:00
morluto 66acbb3421 fix(windows): report unreadable declared shortcut Unicode fields (#10080)
fix(native): report truncated shortcut Unicode declarations
2026-11-11 18:16:20 +08:00
morluto cb048c3ed5 fix(filesystem): preserve rejected prefix read failures (#10081)
fix(filesystem): preserve prefix read failures across cancellation
2026-11-11 18:16:13 +08:00
morluto dc5527b0bc test(filesystem): verify snapshot admission and retained output (#10091) 2026-11-11 05:15:41 -05:00
8052f8daf0 fix(elf): preserve virtual relocation identity (#9990)
* fix(elf): keep compressed storage out of decoded metadata facts

* fix(elf): preserve virtual relocation identity

Keep linked initializer backing and relocation values in their owning virtual
or ET_REL section coordinates. Replace the IL2CPP physical-copy materializer
with compact virtual value facts while preserving file-backed capacity.

Reuse initializer repairs and original regressions from ShuaixinHuang PRs
repair retains independent alias values instead of blanket alias refusal.

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

* 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(il2cpp): admit virtual pointer workspace before retention

* fix(elf): reject null relocation target sections

* fix(il2cpp): avoid decoding unrelated Mach-O words

* fix(il2cpp): preserve uncertainty in candidate scans

* fix(il2cpp): bound uncertain array candidates

* fix(il2cpp): preserve unknown registration candidates

* fix(il2cpp): classify type kinds before bound data

* fix(il2cpp): bind candidate counts to matching names

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: 帅鑫 Huang <1836656514@qq.com>
2026-11-11 18:13:18 +08:00
morluto 3c0e9d8a02 fix(providers): retain candidate cleanup until close succeeds (#10020) 2026-11-11 05:08:15 -05:00
morlutoandCursor Agent 01e8c6447a fix(artifacts): keep an all-zero MD5 note as metadata (#9986)
* fix(artifacts): keep an all-zero MD5 note as metadata

A Godot member with an all-zero MD5 records a limitation instead of a
digest. That note is the metadata difference from a member that claims
an MD5. A caveat without a one-sided integrity claim stays unchanged.

* fix(artifacts): compare declared digests without limitation text

A one-sided declared_integrity claim is already a metadata difference.
The limitation-array helper could not change that result and treated
unrelated observation caveats as source metadata. Remove it.

* test(artifacts): describe the one-sided MD5 claim as the metadata fact

The Godot acceptance case still expects metadata when one member has a
declared MD5 and the other has an all-zero MD5. That difference is the
missing claim, not the reader's limitation note.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-11-11 05:07:30 -05:00