rea/docs
FeeHaard fd65e278be
fix(setup): resolve the configuration MSIX Claude Desktop reads (#2426)
* fix(setup): resolve the configuration MSIX Claude Desktop reads

On Windows, setup, doctor and uninstall always used
%APPDATA%\Claude\claude_desktop_config.json. The MSIX build of Claude
Desktop (package family Claude_pzs8sxrjxfjjc) virtualizes AppData writes
and reads its package-private copy under
%LOCALAPPDATA%\Packages\<family>\LocalCache\Roaming\Claude once it exists.
Setup from an ordinary process therefore wrote a file the app never reads,
and doctor reported that file healthy.

Resolve the Claude Desktop location once, in supportedClients(): the
private copy when it exists, else the AppData file the package still
reads, else a new private copy. An unrecognized Claude_* publisher or
unreadable package storage is reported instead of falling back to AppData.

Compare one of the package's private files with its AppData path through
realpath.native to learn whether the running package started this
process. From that redirected view, or when no file can be compared,
setup and uninstall refuse to change Claude Desktop's configuration,
because the running app rewrites it from memory. From a redirected view
they also refuse writes under %APPDATA% and %LOCALAPPDATA% for other
clients and skills, which would land in the package's private storage.

Setup refuses to register a launcher stored in any MSIX package's
private storage, discloses which file the package reads, and tells the
user to quit Claude Desktop fully on every platform. Configuration fails
with target_changed if the package switched to its private copy after
the plan was shown. Uninstall removes REA from both files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(setup): record the verified MSIX Claude Desktop registration

On the Windows 11 host with the MSIX build 2.31226.1.0, setup from an
ordinary terminal with the app quit wrote the package-private copy. After
the app restarted, the entry persisted, doctor reported it aligned, and
Claude Desktop's MCP log showed REA starting and answering tools/list.
Uninstall against the real app remains unverified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(setup): format MSIX review corrections

* fix(setup): carry the admitted legacy path through uninstall removal

clientRegistrationRemoval returned a removeLegacy boolean, and removeClient
recomputed the legacy path separately, so TypeScript could not prove the
path existed when removeLegacy was true and `tsc --noEmit` failed in
Uninstall.ts. The decision now returns the admitted legacy path itself;
preflight and removal consume that one value.

The alias regression matched new-destination children with a "/"
separator while building paths with path.join, so it failed on Windows.
It now uses path.sep.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(setup): split MSIX Claude Desktop lifecycle cases under the function length limit

The uninstall cases pushed the registration lifecycle describe past the 150-line lint limit. Group them separately, with the AppData registration case kept among the registration cases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-10-13 22:04:22 +08:00
..
.vitepress feat(fiddler): inspect native SAZ captures 2026-10-13 02:51:14 +00:00
assets docs: keep license sections text-only 2026-10-10 00:09:46 +08:00
releases chore(main): release rea-agents 6.4.0 (#1399) 2026-10-11 11:57:29 +08:00
specs/solidity/cbor-metadata feat(evm): inspect lossless Solidity terminal CBOR metadata (#2790) 2026-10-13 21:55:30 +08:00
adb-device-analysis.md fix: align MCP archive contracts and documentation (#2478) 2026-10-13 12:06:41 +08:00
android-analysis.md fix(android): clean Windows workspaces after owner termination (#2440) 2026-10-13 22:03:16 +08:00
apktool-resource-analysis.md fix(apktool): run Windows batch launchers through cmd.exe (#1777) 2026-10-11 17:16:48 +08:00
apple-application-analysis.md fix(apple): limit already-loaded reuse to rpath dependencies (#2292) 2026-10-13 14:40:43 +08:00
architecture.mermaid refactor(evm): bind offline analysis through a static descriptor 2026-10-13 01:26:43 +08:00
binary-diagnostics.md fix(pwntools): let callers widen the artifact input bound (#2486) 2026-10-13 21:18:12 +08:00
browser-observation.md docs(browser): clarify attach coverage and Chromium setup (#2287) 2026-10-13 20:44:41 +08:00
browser-scenario-contract.md fix(browser): report mismatched event family selection as unknown in capture comparison (#2239) 2026-10-13 02:36:45 +08:00
cli.md feat(ghidra): support raw NMOS 6502 analysis (#2079) 2026-10-13 21:13:01 +08:00
client-configuration.md fix(setup): resolve the configuration MSIX Claude Desktop reads (#2426) 2026-10-13 22:04:22 +08:00
client-verification.md test(clients): verify Qwen Code on native Windows (#2103) 2026-10-13 21:27:45 +08:00
electron-observation.md fix(electron): support packaged app.asar pages and rewritten unpacked companions (#1400) 2026-10-10 23:01:54 +08:00
error-contract.schema.json feat(evm): inspect offline bytecode interfaces through EVMole (#1051) 2026-10-08 15:32:05 +08:00
evm-bytecode.md feat(evm): inspect lossless Solidity terminal CBOR metadata (#2790) 2026-10-13 21:55:30 +08:00
firmware-analysis.md feat(ghidra): admit RISC-V ELF analysis through a pinned generic lane (#2151) 2026-10-13 00:11:35 +08:00
flutter-analysis.md perf(flutter): add opt-in retained AOT summary and string pages 2026-10-13 11:39:30 +08:00
frida-instrumentation.md feat: add Frida instrumentation support (#1359) 2026-10-12 22:01:58 +08:00
ghidra-dos.md docs: correct drift and reorganize English guides (#2207) 2026-10-12 22:14:25 +08:00
ghidra-mips.md feat(ghidra): admit recordless legacy MIPS32 ELFs with a pinned 32-bit language (#1898) 2026-10-13 21:42:38 +08:00
ghidra-nativeaot.md feat(ghidra): inspect NativeAOT PE metadata read-only 2026-10-11 10:31:49 +08:00
ghidra-provider.md fix(ghidra): warn when callee/caller reads stop at a truncated function body (#2360) 2026-10-13 21:26:57 +08:00
ghidra-psp.md feat(ghidra): admit bounded PSP ELF through installed Allegrex (#1599) 2026-10-11 19:47:33 +08:00
ghidra-riscv.md feat(ghidra): support raw NMOS 6502 analysis (#2079) 2026-10-13 21:13:01 +08:00
go-binaries.md feat(go): inspect embedded binary build metadata (#1363) 2026-10-12 11:34:02 +08:00
harmony-analysis.md feat(harmony): project HarmonyOS package inventory evidence (#1447) 2026-10-11 20:09:21 +08:00
ida-provider.md fix(ida): report missing tools when a compatibility profile mismatches (#2307) 2026-10-13 21:58:36 +08:00
index.md docs: correct drift and reorganize English guides (#2207) 2026-10-12 22:14:25 +08:00
installation.md fix(setup): resolve the configuration MSIX Claude Desktop reads (#2426) 2026-10-13 22:04:22 +08:00
javascript-application-graph.md fix(javascript): retain compiler-dependent module resolution facts 2026-10-13 15:58:25 +08:00
javascript-application-workflows.md fix(javascript): retain getter receivers through local aliases (#2778) 2026-10-13 21:26:13 +08:00
javascript-artifact-reconstruction.md docs: correct drift and reorganize English guides (#2207) 2026-10-12 22:14:25 +08:00
javascript-recovery.md feat(javascript): recover code-split bundles from multiple inputs (#1686) 2026-10-11 18:39:49 +08:00
javascript-runtime-observation.md fix(runtime)!: preserve unknown debugger attachment state 2026-10-12 12:37:00 +08:00
javascript-runtime-reconciliation.md fix: align MCP archive contracts and documentation (#2478) 2026-10-13 12:06:41 +08:00
jeb-analysis.md feat(jeb): add JEB engine provider over its MCP interface (#1536) 2026-10-10 23:03:27 +08:00
managed-code-analysis.md feat(managed): name the declaring type of call and field targets (#2163) 2026-10-13 21:12:15 +08:00
mcp-contracts.md perf(native): add opt-in Mach-O summary delivery and retained pages (#2634) 2026-10-13 00:13:12 -07:00
mcp-prompts.md docs: correct drift and reorganize English guides (#2207) 2026-10-12 22:14:25 +08:00
migration-6.2.md docs: correct MCP error and capture import guidance 2026-10-10 05:41:52 +08:00
native-investigation.md feat(ghidra): support raw NMOS 6502 analysis (#2079) 2026-10-13 21:13:01 +08:00
packet-captures.md feat(captures): discover installed protocol and field definitions (#2496) 2026-10-13 15:55:25 +09:00
pcap-analysis.md feat(pcap): add bounded capture summaries through CLI and MCP 2026-10-13 04:53:03 +00:00
process-capture.md fix(process): add an opt-in Swift module cache (#2252) 2026-10-13 02:26:16 +08:00
raw-binary.md feat(ghidra): support raw NMOS 6502 analysis (#2079) 2026-10-13 21:13:01 +08:00
reconstruction-obligation-ledgers.md refactor: return complete analysis results inline 2026-09-29 08:07:24 +08:00
reconstruction-readiness.md docs(readiness): align required stage identifier and checks with evaluator (#2200) 2026-10-13 00:15:54 +08:00
recorded-crashes.md fix(pwntools): let callers widen the artifact input bound (#2486) 2026-10-13 21:18:12 +08:00
releasing.md ci: separate fast feedback from full qualification 2026-10-13 17:09:53 +08:00
roadmap.md docs: remove retired architecture and migration artifacts 2026-10-10 05:41:45 +08:00
signal-recordings.md feat(signals): discover installed decoders and option help (#2487) 2026-10-13 15:58:19 +09:00
sqlite-databases.md feat(sqlite): inspect offline snapshots with selective evidence (#2271) 2026-10-12 18:33:23 +00:00
testing.md feat(ghidra): support raw NMOS 6502 analysis (#2079) 2026-10-13 21:13:01 +08:00
tool-design.md docs: define performance priorities for analysis workflows (#2245) 2026-10-13 00:42:06 +08:00
user-visible-errors.csv fix(scripts, install): honor test:fast "without build" promise and orient Node.js engine mismatches (#2026) 2026-10-12 13:54:57 +08:00
wasm-artifacts.md docs: correct drift and reorganize English guides (#2207) 2026-10-12 22:14:25 +08:00
web-network-captures.md feat(browser): inspect retained aioquic qlog JSON captures 2026-10-13 03:24:05 +00:00
web-runtime.md fix(browser): treat module-import initiator positions as script positions 2026-10-08 16:44:25 +00:00
web-source-location.md fix(bun): report the real runtime and enforce worker memory budgets on Windows (#1730) 2026-10-11 19:20:00 +08:00
website-module-trace.md feat(browser): trace captured website module imports (#879) 2026-10-07 14:59:52 +08:00
website-script-export.md fix(browser): preserve body API provenance through script export 2026-10-12 14:12:19 +08:00
windows-ghidra-p0.md feat(ghidra): support raw NMOS 6502 analysis (#2079) 2026-10-13 21:13:01 +08:00