100 Commits
Author SHA1 Message Date
morluto c09fa01b37 refactor(managed): centralize MemberRef row facts 2026-10-27 01:29:43 +08:00
morluto 939009f6f9 fix(artifacts): preserve completed caller reads through finalization
Retain file identity after Rust, web artifact, shared selected-input and historical capture reads complete before close or cancellation fails. Preserve descriptor-set snapshots in diagnostics alongside sanitized capture observations.

Classify canonical physical capture failures before cleanup composition; source permission errors and bare syscall failures keep their meaning through late cancellation and retry. Keep explicit sensitive-value redaction on retained facts.

Validation: 247 focused cases passed, two Linux-only cases skipped; build, typecheck, lint and formatting passed. Real descriptors with controlled finalization faults establish reader ownership and facts. Worker reply and multi-file database completion semantics remain separate audit work.
2026-10-27 01:27:03 +08:00
morluto 31e8492faf refactor(artifacts): centralize completed snapshot observations
Normalize completed stable-file path, digest and length in one shared observation owner. Migrate thirteen identical provider projections while preserving their selected paths, schema checks and cleanup composition.

Keep specialized metadata and worker reply observations at their existing owners. Validation: shared real-descriptor coverage and provider lifecycle tests passed; build, typecheck, lint and formatting passed.
2026-10-27 01:27:03 +08:00
morluto 1ce9f317be refactor(pyinstaller): centralize PYZ member role ownership 2026-10-27 01:21:11 +08:00
morluto 662ec2e450 fix(verifiers): preserve source Evidence through shared admission 2026-10-27 01:11:51 +08:00
morluto f6805e29c3 refactor(pe): centralize resource tree facts across readers 2026-10-27 01:02:21 +08:00
morluto 9d2c087d83 fix(readers): preserve completed snapshots through cleanup retries
Retain exact completed file path, digest and length in Python pyc and Erlang BEAM failure observations. Translate Python close failures at the provider boundary and bind them to the retained descriptor cleanup leases so later successful retries resolve prior errors.

Exercise actual services and file handles with completed reads, cancellation during finalization and physical read failure followed by cancellation. Assert no fabricated snapshot on early failure and resolution of every prior cleanup report.

Validation: six focused descriptor regressions plus existing filesystem, parser and MCP coverage passed; build and static checks passed. Authored format fixtures establish portable reader behavior, not CPython/Erlang runtime execution.
2026-10-27 01:01:19 +08:00
morluto 74d5cab372 fix(native): account export and version text in UTF-8 bytes
Count retained UTF-8 text rather than UTF-16 code units, including exact-byte base64 spellings. Bound the decoded version-name map independently from output expansion, releasing replaced entries from its live storage charge.

Add real service/provider boundary controls for accepted and over-budget symbol names, version names and unused version metadata. Existing per-string bounds remain the allocation owner.

Validation: native parser, filesystem and CLI/MCP views passed; build, typecheck, lint and formatting passed. No serialized-report size cap, OOM reproduction or performance improvement is claimed.
2026-10-27 01:01:10 +08:00
morluto 3d74c480e0 fix(verifiers): consolidate Ghidra MCP result admission 2026-10-27 00:49:27 +08:00
morluto 60b55be7e7 fix(native): bound PE export names before intermediate retention
Charge PE alias names when storing them, before target interpretation can suppress output rows. Validate unused-slot names as bytes without retaining or decoding strings. Keep row and forwarder accounting separate so names are charged once.

Preserve alias ordering, malformed unused-name issues and ordinal-only suppression. Add production service/provider retention regressions using compact shared-pointer fixtures.

Validation: 43 focused parser, filesystem, CLI and stdio MCP tests; fresh build, typecheck, lint and formatting passed. Three bounded Node 24.22.1 measurement pairs showed median process RSS high-water 154000 to 93168 KiB; timing and sampled family memory have cache/startup/sampling limits. No Windows loader acceptance or OOM reproduction claim.
2026-10-27 00:40:35 +08:00
morluto 0973649cec refactor(captures): consolidate recorded exchange body facts 2026-10-27 00:38:06 +08:00
morluto c2b0c955cd fix(workers): reject malformed UTF-8 in JSON result files 2026-10-27 00:28:42 +08:00
morluto 1d32eb3aa4 fix(providers): keep operation environments consistent through launch
Capture one environment snapshot per admitted WABT, JADX, firmware and Wakaru operation. Use it for tool selection, session identity and child launches while preserving configuration updates between operations.

Regressions reproduce changed JVM options under an old session key, mixed engine/limiter selection and environment drift between subprocesses. Keep selected-wrapper and cleanup coverage in a shared fixture with separate scenarios.

Validation: 115 distinct focused tests passed across the final five-file selection, including seven selected-command cases after refactoring. Fresh build, typecheck, lint and formatting passed. Tests use real subprocess fixtures; no real JADX/WABT/Binwalk/Wakaru engine or native Windows verification is claimed.
2026-10-27 00:25:43 +08:00
morluto 2cdc8cb92e refactor(managed): centralize TypeDef row facts across consumers 2026-10-27 00:21:00 +08:00
morluto 8423c5c6d0 refactor(macho): consolidate prefix interpretation across readers 2026-10-27 00:13:36 +08:00
morluto 13fba271e6 refactor(plist): centralize binary layout and offset ownership 2026-10-26 23:51:33 +08:00
morluto d27e3f8e89 fix(native): preserve import names across dyld text formats
Parse literal import framing and retain ambiguous boundaries. Consult undefined symbol-table names only when needed to distinguish producer spacing, with import and export captures owned separately.

Validation: 59 native tests passed and real Apple tools on inert arm64 fixtures reproduced the old loss and verified the fix. Fresh build, typecheck and lint passed. Small warm-task median elapsed was unchanged; cold costs and agent tokens were not measured.
2026-10-26 23:50:10 +08:00
morluto ab44487ff8 fix(adb): preserve process names and pin fixture interpreters
Consume Toybox’s single NAME separator without stripping source whitespace. Keep MCP subprocess fixtures independent of ambient PATH and validate calls through the existing named-schema helper.

Validation: focused ADB provider/parser and MCP tests passed; no real Android device was used.
2026-10-26 23:50:10 +08:00
morluto a5ad164283 fix(browser): unify worker target admission across capture workflows 2026-10-26 23:44:08 +08:00
morluto cadd5b75b3 refactor(elf): consolidate header and section-name interpretation 2026-10-26 23:40:04 +08:00
morluto 81add3d23d refactor(pyinstaller): centralize PYZ header and version facts 2026-10-26 23:33:54 +08:00
morluto d9908fd7a4 refactor(ghidra): consolidate function and inventory admission 2026-10-26 23:27:43 +08:00
morluto b45a83368c fix(ci): preserve lint diagnostics without source locations 2026-10-26 23:21:57 +08:00
morluto 65819e8cc5 fix(pcap): capture provider environment once 2026-10-26 23:21:57 +08:00
morluto a7aad91320 fix(firmware): preserve report metadata before semantic validation 2026-10-26 23:21:57 +08:00
morluto a84e0cfcfe refactor(verifiers): consolidate capture result admission and parity 2026-10-26 23:12:34 +08:00
morluto 99062feaa7 test: bind MCP validation and cleanup faults to selected inputs 2026-10-26 23:06:36 +08:00
morluto fef76a02fb fix(apple): preserve own artifact metadata through schema projection 2026-10-26 23:06:36 +08:00
morluto b7e76a57cd fix(adb): preserve selected environment through provider execution 2026-10-26 23:06:36 +08:00
morluto a30ffd27a6 refactor(dos): centralize MZ admission and load-image evidence 2026-10-26 23:02:53 +08:00
morluto 0828917c79 refactor(verifiers): centralize named artifact output admission
Route six artifact verifiers through the canonical complete MCP output and error parsers. Remove duplicated JSON/schema interpretation while retaining Evidence authentication, provider provenance, independent CLI parsing and CLI/MCP parity checks. Validate malformed success/error envelopes at the shared boundary.

Validation: 11 boundary tests, Go compiler verifier (30 cases), and synthetic IL2CPP/Flutter verifier workflows passed; typecheck/lint passed. PCAP readiness passed with stub tools, but capture inspection is unsupported on macOS. Linux-only binary-layout and EVM verifier toolchains were unavailable.
2026-10-26 22:48:22 +08:00
morluto f02df45a46 fix(process): preserve selected Darwin helper environment through execution 2026-10-26 22:42:48 +08:00
morluto 921142efbc fix(hopper): own profile reads and retain completed coordinate evidence 2026-10-26 22:42:48 +08:00
morluto 5b983516ab fix(hopper): consolidate release metadata and archive identity ownership
Share release JSON decoding, vendor fields and package integrity checks across macOS setup and Linux publishing/cache reads. Reject malformed UTF-8 instead of repairing macOS metadata, retain established initial BOM tolerance, and preserve complete vendor rows through admission and cache retention. Keep platform channel, signature, installation and cleanup policies unchanged.

Validation: 134 focused tests passed with 21 platform skips; typecheck and lint passed. Linux-only signed-cache cases were updated but skipped on the macOS host. No live Hopper installation performed.
2026-10-26 22:38:53 +08:00
morluto 49816235f5 refactor(providers): consolidate IDA and JEB MCP result admission
Give the object-structured provider envelope one owner that retains original dictionary members. Remove duplicate schemas, text extraction and JSON-or-text decoding plus the downstream casts that repaired lossy record clones. Keep provider-specific error, truncation, wrapper and payload-selection policies in each adapter.

Validation: IDA/JEB compatibility tests, pinned SDK transport tests and provider regressions passed; check:fast passed. Real IDA/JEB applications were not exercised.
2026-10-26 22:30:58 +08:00
morluto 2b84efe0da fix(contracts): align CLI omission and native capability coverage 2026-10-26 22:22:27 +08:00
morluto 4a8205456c fix(lifecycle): preserve source failures and native workspace diagnostics 2026-10-26 22:22:27 +08:00
morluto 77468d5043 fix(providers): preserve launch selections and refresh obsolete Kuna exports 2026-10-26 22:22:27 +08:00
morluto eb06e263cb fix(plist): own dictionary decoding across Apple workflows
Preserve XML, OpenStep and binary dictionary keys at their format owners. Share validated binary reference facts with materialization while retaining scalar precision, UID identity and bounded expansion. Migrate archive, Interface Builder, native and app-bundle consumers, then remove obsolete key-omission accounting and schema copies.

Validated source regressions and compiled CLI/MCP workflows, including native plist fidelity and archive identity. Typecheck, lint, docs and test discovery pass. No performance benchmarks were required.
2026-10-26 22:20:00 +08:00
morluto 3b26d7f80b docs(security): add fallback reporting email 2026-10-26 22:18:00 +08:00
morluto cd68181c90 fix(providers): preserve report bytes and dictionary facts 2026-10-26 22:01:51 +08:00
morluto e54bf1006e fix(environment): own JSON fields across capture, state and replay 2026-10-26 18:27:30 +08:00
morluto cc5a96933a test(mcp): validate selected tools without compiling the entire catalog 2026-10-26 18:26:33 +08:00
morluto dec4cf50cb fix(captures): preserve reply failures through descriptor finalization 2026-10-26 18:26:26 +08:00
morluto 68f2d67c56 fix(paths): preserve native selections through analysis and removal 2026-10-26 18:26:17 +08:00
morluto e7f986c994 fix(json): consolidate dictionary admission across analysis and verification 2026-10-26 18:14:50 +08:00
morluto c06dc2d356 fix(native): retain completed debugger evidence through reply cleanup 2026-10-26 18:12:01 +08:00
morluto f8161ad7b3 fix(setup): preserve selected home paths throughout skill installation 2026-10-26 18:11:54 +08:00
morluto 4ca3032e7f fix(json): preserve configuration and capture data at admission 2026-10-26 18:06:00 +08:00
morluto e596a48251 fix(sqlite): retain completed evidence through reply finalization 2026-10-26 17:56:47 +08:00
morluto f2b4468183 fix(paths): preserve native selections across launch and publication 2026-10-26 17:56:47 +08:00
morluto da526fc014 fix(providers): preserve reply bytes and structured JSON ownership
Share strict UTF-8 JSON admission across bounded worker reports. Preserve IDA/JEB structured dictionaries through negotiated SDK validation and adapter decoding, retaining inherited tool validation and protocol handling.

Validated 240 tests, including real SDK/HTTP exchanges and firmware file reads; 83 host-specific cases skipped. Typecheck, lint, and discovery passed. Real-provider execution and modern MCP protocol behavior remain unverified.
2026-10-26 17:52:32 +08:00
morluto 721dd3d1aa fix(javascript): preserve selected inputs and completed source evidence 2026-10-26 17:39:29 +08:00
morluto 3864c7d667 fix(config): preserve captured environments across provider launches 2026-10-26 17:39:23 +08:00
morluto ccdeda7a27 fix(inputs): centralize admission and preserve caller selections
Move shared request parsing into its application owner, migrate all consumers, and remove six duplicated admission blocks while preserving cancellation and validation policy.

Keep operator-selected JavaScript paths in verifier parent Evidence while retaining canonical comparison guards. Validated with 204 passing tests, 3 Linux-x64-only skips, typecheck, lint, and test discovery.
2026-10-26 17:35:18 +08:00
morluto 7d36d172ab fix(evidence): consolidate retained view and verifier ownership 2026-10-26 17:26:55 +08:00
morluto e2d4c0dabb fix(process): preserve environment snapshots and final cancellation 2026-10-26 17:26:16 +08:00
morluto eecadf35b2 fix(verification): unify client schema traversal and reference checks
Share ordered schema positions between Gemini literal checks, DeepSeek regex
checks, and catalog array-shape checks. Reuse the canonical keyword and local
reference owners; keep unreferenced instance literals opaque and unresolved
external or dynamic targets unknown.

Gemini and catalog checks now catch constraints in schemas reached through
references into examples. Preserve source paths, resource scopes, cycles and
regex occurrence counts. Align fixture first-error selection with the native
Gemini check and use consistent bracketed array locations in diagnostics.

Validation: 55 focused tests passed, including full/compact MCP catalogs;
typecheck, lint, discovery, and Node source-loader checks passed. The old
Gemini scanner reproduced the local-reference false negative. Installed
Gemini and DeepSeek clients were not run.
2026-10-26 17:15:58 +08:00
morluto 86ff3237e1 fix(paths): preserve selected command, output, and source identities 2026-10-26 17:14:02 +08:00
morluto 6c35d74a7d refactor: centralize input validation and schema interpretation
Migrate twelve application service files to the existing provider input owner,
preserving schema causes, cancellation precedence, caller selection, and
retained Evidence. Keep flows with distinct error policies separate.

Replace the DeepSeek verifier's recursive object scan with schema-position
traversal using the canonical keyword and local-reference owners. Literal
pattern fields no longer cause false regex failures; patternProperties keys
are checked alongside actual pattern constraints in native regex modes.

Validation: 271 focused workflow/service tests and six verifier regressions
passed; static checks, discovery, and actual Node source-loader smoke passed.
The baseline scanner reproduced the new regressions. Installed DeepSeek client
execution was not run.
2026-10-26 17:05:05 +08:00
morluto 8a65787507 refactor: consolidate parsed image ownership across consumers
Retain validated DOS relocation records in their domain owner and consume
those facts in Ghidra load-image preparation. Preserve ordered duplicate
aliases, overlapping writes, and original/final byte evidence.

Share FAT header facts across generic, native, and Hopper readers without
merging their distinct admission policies. Replace managed method bodies'
two identical mapping lookups with one owned offset-and-extent result.

Validation: 660 focused tests passed across 19 suites; typecheck, lint, and
test discovery passed. Hopper/Ghidra checks used fixtures and simulated
provider observations; no real external provider execution was performed.
2026-10-26 16:56:50 +08:00
morluto a7f50e3386 refactor: consolidate ELF and CLR record interpretation
Share ELF note headers across note inspection, Flutter build IDs, Node SEA,
and recorded-crash source binding. Decode REL/RELA records once for MIPS
shared-load analysis and IL2CPP linking, removing superseded scalar helpers.

Share the CLR header prefix between desktop detection and managed PE parsing
while preserving their distinct read bounds and admission policies. Cover
those differences and ignored R_NONE fields with production-boundary tests.

Validation: 493 focused tests passed, two existing skips; static checks and
test discovery passed. Public managed/desktop CLI and ELF notes CLI/MCP
workflows exercised; no real external analysis providers were run.
2026-10-26 16:50:08 +08:00
morluto eb51eb6915 fix(process): preserve selected launch paths and completed command output 2026-10-26 16:46:53 +08:00
morluto 86e7cd9b48 fix(verification): keep runtime packaging and boundary fixtures complete 2026-10-26 16:46:53 +08:00
morluto 09acf217d9 fix(evidence): preserve source and authenticated observation identity 2026-10-26 16:46:45 +08:00
morluto 6336fe5bb5 refactor: consolidate binary analysis admission and format ownership
Reuse the existing provider input admission helper across twelve services,
preserving cancellation, schema errors, path policies, and Evidence handling.
Share ELF dynamic records across Dart, MIPS, and IL2CPP readers, and reuse
Mach-O segment and section records for Node SEA location.

Require canonical DOS ownership before GPU PE section discovery so relocation
bytes cannot masquerade as a PE pointer. Cover valid short DOS headers and
the malformed case through both inventory and the public CLI.
2026-10-26 16:44:21 +08:00
morluto 7adfcc4467 fix: unify executable format ownership across artifact readers
Centralize ELF section and Godot trailer declarations while preserving caller admission policies. Route six PE entrypoints through canonical DOS ownership so relocation data cannot establish a PE header, and update NativeAOT interpretation identity and verifier dependency coverage.
2026-10-26 16:32:49 +08:00
morluto 9341b116ef refactor: consolidate binary artifact interpretation and fixture ownership
Share exact ELF program-header facts across nine consumers while preserving their admission and precision policies. Centralize conformance path and digest binding, retain verifier-specific checks, and route fixture-owner changes to CI qualification.
2026-10-26 16:21:11 +08:00
morluto 23bc51d5c4 test(package): migrate skill metadata fixture to frontmatter 2026-10-26 16:15:08 +08:00
morluto 28222089f4 refactor(zip): share end-of-directory declarations 2026-10-26 16:14:58 +08:00
morluto 91bacc5c14 refactor(config): share bounded decimal setting validation 2026-10-26 16:14:49 +08:00
morluto 2411d60b5a fix(verification): unify complete MCP catalog checks 2026-10-26 16:11:09 +08:00
morluto 74f9870b7a refactor(macho): share FAT evidence interpretation 2026-10-26 16:10:57 +08:00
morluto 90199ff0ec refactor(elf): centralize symbol record decoding 2026-10-26 16:10:46 +08:00
morluto 3d565fa42a refactor(windows): share native artifact validation 2026-10-26 16:04:44 +08:00
morluto 729684af9a refactor(png): share IHDR interpretation 2026-10-26 16:04:33 +08:00
morluto 92bdb4443f refactor(pe): share CodeView range interpretation 2026-10-26 16:04:18 +08:00
morluto a7d71f47ee refactor(elf): centralize raw table declarations 2026-10-26 16:04:09 +08:00
morluto c994870f6b fix(inspector): route file locations through URL semantics 2026-10-26 16:02:14 +08:00
morluto 1a1121c61f fix(android): retain selected Java across workspace launches 2026-10-26 16:02:14 +08:00
morluto ce5373e42f test(providers): verify malformed HTTP acquisition recovery 2026-10-26 16:02:14 +08:00
morluto 38ed5a3142 fix(browser): invalidate ASAR headers on file state changes 2026-10-26 16:02:14 +08:00
morluto 258a1dd3b7 fix(skills): parse metadata only from YAML frontmatter 2026-10-26 15:49:58 +08:00
morluto 0f64f1f855 refactor(macho): share bounded header declarations 2026-10-26 15:49:52 +08:00
morluto f8c5a6cc10 fix(providers): reject malformed UTF-8 before MCP decoding 2026-10-26 15:41:03 +08:00
morluto c849a97d2a fix(setup): preserve explicit Codex home traversal 2026-10-26 15:41:03 +08:00
morluto 628087a2db fix(process): preserve platform-aware environment precedence 2026-10-26 15:41:03 +08:00
morluto 554816becc refactor(verification): centralize native client result discovery 2026-10-26 15:40:34 +08:00
morluto 981d806924 refactor(macho): centralize segment and section decoding 2026-10-26 15:40:10 +08:00
morluto f4cc6c85ef refactor(verification): share native client fixture assertions 2026-10-26 15:34:11 +08:00
morluto 0929751798 refactor(macho): reuse canonical header declarations 2026-10-26 15:34:04 +08:00
morluto 36515a5c9b refactor(cli): derive desktop limits from the input contract 2026-10-26 15:33:59 +08:00
morluto deed39f7c4 refactor(pe): share optional-header facts across readers 2026-10-26 15:27:35 +08:00
morluto 971b48f702 refactor(mcp): reuse desktop retained-summary handler 2026-10-26 15:27:29 +08:00
morluto b9ee8fe057 refactor(pe): centralize fixed COFF header decoding 2026-10-26 15:20:02 +08:00
morluto 99d4ea9c05 fix(captures): preserve relative redirect URL evidence 2026-10-26 15:15:00 +08:00
morluto 2012efe5fd fix(artifacts): retain source identity failures after relocation 2026-10-26 15:15:00 +08:00
morluto 0c147a4a70 fix(snapshot): preserve authenticated replay provenance 2026-10-26 15:15:00 +08:00
morluto f4987281fa fix(setup): forward supported tool and runtime selections 2026-10-26 15:15:00 +08:00
morluto 53779b59bf refactor(pe): reuse canonical section header facts 2026-10-26 15:14:10 +08:00