Commit Graph
5832 Commits
Author SHA1 Message Date
Rudy Celekliandgensokyo-dev 85198fd5cb fix(pe): retain TLS templates without complete file backing
Signed-off-by: Rudy Celekli <rudy@gradiahq.com>

Fixes #7400
Supersedes #7529

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
hhangandgensokyo-dev a7398cc9eb fix(elf): preserve compiler metadata after an empty kernel builder
Squashed from #9950 and rebased onto main.

Fixes #9942
Supersedes #9950

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
wunianze666-netizenandgensokyo-dev 5e1ddec2da fix(apk): validate classic ZIP disk declarations
Squashed from #7471 and rebased onto main.

Fixes #7433
Supersedes #7471

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
morlutoandgensokyo-dev 14de30ff97 fix(apple): accept historical IPS row reports
Refs #7689

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
Avocadoandgensokyo-dev 0a99147c57 fix(apple): retain unknown IPS row key names
Fixes #7689
Supersedes #7733

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
Alex Cinovojandgensokyo-dev f8f019e104 fix(pcap): preserve DNS RCODE, EDNS extended RCODE, and OPCODE status in address attribution
Fixes #10211

Supersedes #10218

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
rodricksz4h5andgensokyo-dev 7a03182349 fix(v8): report a pre-13.4 V8 module code cache as a module
Fixes #10262
Supersedes #10263

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
SahinurDEVandgensokyo-dev 596515f82c fix(artifacts): admit empty DOCTYPE internal subsets in XML plist preflight
An XML plist whose DOCTYPE ends in an empty internal subset ("[]",
optionally with whitespace) declares nothing that could expand, but the
preflight refused it as internal entity expansion. Interface Builder
bundles then omitted the nib and blamed aggregate decode budget
exhaustion. Skip whitespace-only subsets; any declaration still refuses.

Fixes #8407

Supersedes #8438

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
morlutoandgensokyo-dev 8d546bd028 fix(firmware): treat empty DTB extents as non-overlapping
Refs #7315

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
ducanhnguyen223andgensokyo-dev 056b78b636 fix(firmware): accept empty FDT strings at reservation boundary
Fixes #7315
Supersedes #7317

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
neoLsHandgensokyo-dev d7c73923d7 fix(model): count an empty innermost GGUF array against the frame limit
The nesting guard ran on a child visit of GgufHeader#value, so an empty
innermost array never produced one and a 33rd frame parsed as success
while the reported limit stayed maximum_array_frames: 32. Charge the
frame when entering the ARRAY branch instead, so the bound counts the
advertised unit and no longer depends on a scalar child that is not a
frame.

Fixes #7312

Supersedes #7698

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
Cursor Agentandgensokyo-dev 1624620c2c fix(native): accept a dynsym null entry with only st_name set
inspect-native-exports treated any nonzero byte in .dynsym entry 0 as a
malformed table. That is right when the reserved slot holds a real symbol,
which was #7389, but some Android arm64 libraries set only st_name. Those
files were rejected before any export could be read.

Skip that entry, keep the inventory complete, and record the nonzero
st_name in limitations. Any other nonzero field still fails the table.

Fixes #9700

Supersedes #9752

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:31:24 +01:00
gensokyo-devandgensokyo-dev 9943c1c8bc fix(android): bound split facts and keep saved JNI reports readable
Charge the manifest split facts against the native inventory's retained JSON
allowance and refuse more than 64 split types or 256-character names as an
unknown, so a crafted manifest cannot overflow the response. Reports saved
before split facts existed still parse: the report schema treats absent
facts as optional while the live bridge contract requires them. The JADX
regression now decodes a generated binary manifest through
nativeDeclarations, with named and resource-ID-only attributes.

Refs #9756

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:15:32 +01:00
18b72ca461 fix(android): qualify the JNI library inventory by required splits
A base APK whose manifest requires ABI or density splits keeps its native
libraries in those splits, yet inspect_android_jni_bindings reported a
complete library inventory with zero libraries. The bridge's native
declaration inventory now also decodes the root binary manifest without a
session and reports its requiredSplitTypes and isSplitRequired facts, or why
they are unknown (bridge identity 11). When splits are required or unknown,
the library inventory is partial with an unknown that says so, and a binding
without a candidate is unknown instead of unmatched.

The binary manifest fixture from #9769 was used to check the bridge with the
real jadx-headless-mcp 0.7.1 JAR, including stripped attribute names that
resolve through framework resource IDs.

Fixes #9756

Co-Authored-By: 2SinceJuly <202121119+2SinceJuly@users.noreply.github.com>
Co-Authored-By: Phon <twilyt1@proton.me>
Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:15:32 +01:00
101e0986b0 fix(setup): show non-interactive setup results in a terminal
Setup's result is agent-only, so incur hides it when stdout is a terminal and
no format was chosen. Only an interactive setup or a fully interactive TTY dry
run rendered a summary, so `rea setup --yes` printed nothing. Render the dry
run plan or the existing result summary under incur's own hidden-output
condition instead.

Fixes #10531
Supersedes #2185

Co-Authored-By: balkan16 <57933796+balkan16@users.noreply.github.com>
Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 16:06:23 +01:00
morluto 9a2aff2bea fix(artifacts): refuse an ASAR header that declares one member name twice (#10552)
JSON.parse keeps only the last value for a repeated name, so an ASAR header
that declared a path twice listed one member, hid the other and still
reported complete coverage.

Add findDuplicateJsonMember, an iterative scan of validated JSON text that
does not recurse, so the deeply nested headers REA already admits stay
readable. readAsarHeader now refuses a repeated member name as a malformed
index, the same way the listing refuses unsafe path components.
2026-11-14 10:04:11 -05:00
Abhishek Sharmaandgensokyo-dev 8578daf8b7 fix(native): report an unexamined thunk target in value traces
trace_native_values ended at a provider-classified thunk whose model
holds only a synthetic return (an external import) or borrows its
target's operations, without saying the target was never examined, so
a stub's small model read as the end of the call chain. Thunk targets
are now reconciled after traversal: one another path traced, attempted
or queued is left to that path, and the rest are reported in unknowns
with the target in a new optional related_procedure field.

Fixes #8476
Supersedes #8678

Based on #8678 and rebased onto main's separate call-binding module.
related_procedure is exactOptional and set only on the thunk unknown,
so other unknowns and retained traces keep their shape.

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 15:32:34 +01:00
ducanhnguyen223andgensokyo-dev ba32cd3c28 fix(native): report an ownership-helper compile timeout as retryable
When the macOS process-ownership helper's swiftc compile hit
REA_SWIFTC_COMPILE_TIMEOUT_MS, inspect-macho and other native commands
reported a non-retryable provider failure, while process capture
already treated the same fact as retryable. The helper's error now owns
that interpretation (compilerTimedOut and compileTimeout, with its
deadline, message and recovery). Native commands return a retryable
AnalysisTimeoutError naming REA_SWIFTC_COMPILE_TIMEOUT_MS, and process
capture reads the same fact.

Fixes #8936
Supersedes #8938

Based on #8938; the interpretation moves to the error's owner so both
consumers share it.

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 15:32:34 +01:00
Antrulyandgensokyo-dev f8fc5be364 fix(android): classify a pre-handshake JADX heap shortage as a resource limit
A worker heap too small for REA's bridge stops the JVM before the protocol
handshake, so the launcher's retained stderr is the only evidence, and the
failure was reported as capability_unavailable with configuration advice.
When that stderr carries HotSpot's java.lang.OutOfMemoryError heap reasons,
report resource_constraint for memory with observed_max_heap_bytes null and
the same REA_JADX_HEAP_MIB remediation the bridge-reported heap failure uses,
now shared and stating -Xmx precedence. Other launcher stops are unchanged.

Refs #3517
Supersedes #3573

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 15:25:02 +01:00
gensokyo-devandgensokyo-dev 8296d81cd4 test(desktop): record that desktop exports refuse a file in the output parent path
planOutputTree admits the destination before writeOutputTree creates any
parents, so the parent-creation defect fixed for environment bundles does not
reach desktop exports. Keep that sibling comparison as a test.

Refs #7688

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:59:49 +01:00
2SinceJulyandgensokyo-dev 4b5d00bebd fix(desktop): ignore relative XDG bases in capture inventory
Desktop capture used XDG_* values without checking that they are
absolute, so a relative XDG_CONFIG_HOME (or data, state, cache) moved
state-directory, desktop-entry and build-secret lookups under the
working directory. The XDG Base Directory Specification says to ignore
a relative value; one xdgBase helper now applies that rule and falls
back to the home default.

Fixes #9702

Squashed from #9705 and rebased onto main. Setup's client registration
paths are left unchanged: each client's own handling of a relative
XDG_CONFIG_HOME has to be verified before REA writes elsewhere.

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:59:49 +01:00
0ffde0cd09 fix(desktop): admit a build witness folder by the record's own rule
The witness seed accepted its folder with a readdir check that follows
symlinks, treats a missing path as usable, and reports a regular-file
parent as "not empty". The record is later saved through planOutputTree,
so a seed could accept a folder the save then refused. The seed now
admits the folder with planOutputTree too, and returns its refusal.

Fixes #9291

The MCP boundary test is from #9292 by viniciusdsandrade; its parallel
admission helper is not taken, since planOutputTree already owns the
rule and export already uses it.

Co-Authored-By: Vinícius DS Andrade <95101505+viniciusdsandrade@users.noreply.github.com>
Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:59:49 +01:00
5e1d504664 fix(environment): admit the output root before creating its parents
environment-build/export ran an unclassified recursive mkdir of the
destination's parent before SafeOutputTree validated anything. A
trailing `..` therefore created directories before it was refused, and
a regular file in the parent path surfaced as unreadable_output instead
of refusing the selection.

SafeOutputTree.create gains a createParents option that admits the
root's own syntax first, then creates the parents, mapping EEXIST and
ENOTDIR to a destination refusal. The environment bundle writer uses it
instead of its own mkdir.

Fixes #7688
Fixes #7571

The non-directory mapping comes from #7734 by HeadmasterEggy, and the
syntax-first check from #7588 by harshitethic; their tests are kept.

Co-Authored-By: Avocado <headmastereggy@gmail.com>
Co-Authored-By: Harshit Sharma <66710144+harshitethic@users.noreply.github.com>
Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:59:49 +01:00
gensokyo-devandgensokyo-dev 15825208c8 fix(javascript): join wide symbolic branch returns without call spreads
The block branch of the symbolic return flow already appended without a
call spread, but the adjacent if branch and both continuation-condition
joins still spread, so a generated wrapper with a wide tree of unknown
conditions could still overflow the argument limit.

Refs #10445

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:59:41 +01:00
gensokyo-devandgensokyo-dev 3ae23bfeff fix: append target-sized arrays without call spreads
`target.push(...items)` passes every item as a call argument and
overflows the stack once a target-sized array grows past the engine's
argument limit. This class was fixed one site at a time in #10304,
#10343, #10362 and #8632. Add one shared appendAll helper in
src/domain and use it at the remaining sites whose arrays grow with the
input: XML member counting, app-task row suggestions, native call
routes and unresolved calls, call-path caveats, environment-manifest
merges, reference-source import entries, dyld trace edges and JS
symbolic flow values. The web bundle merge from the previous commit now
uses the shared helper too.

Bounded spreads (fixed literals, page-sized reads) are left as they are.

Refs #10445
Refs #10342

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:59:41 +01:00
ShuaixinHuangandgensokyo-dev d8554c1c84 fix(bun): append segment claims without call arguments
Supersedes #10342

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:59:41 +01:00
Felixandgensokyo-dev 7394991d1f fix(artifacts): append bounded claims without call spreads
Refs #10342

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:59:41 +01:00
Vinícius DS Andradeandgensokyo-dev 2032b5a819 fix(web): merge wide script analysis results without call spreads
Fixes #10445
Supersedes #10446

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:59:41 +01:00
gensokyo-devandgensokyo-dev fe80d52c9e fix(javascript): read a BigInt literal's truthiness from any spelling
Older Babel keeps a BigInt literal's source digits, which may carry a
0x/0o/0b prefix, so a hexadecimal zero read as truthy and a falsy socket host
such as 0x0n could drop a valid acquisition. Parse the value with BigInt.

Refs #10002

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:44:47 +01:00
gensokyo-devandgensokyo-dev 98540f24e0 fix(javascript): stop an Electron alias walk at a read before its initializer
The alias walk followed `var saved=s; var s=n(K)` to the later Electron load
although `saved` captured undefined. Each hop now checks, as the consumer
read already did, that the aliased binding's stable origin is available at
that read. The walk also shares one visited set instead of copying it at
every hop.

Refs #4490

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:44:47 +01:00
gensokyo-devandgensokyo-dev 39c820c90d fix(javascript): project getter class static work onto the captured receiver
Static blocks and static field values run when a class is defined, so a
getter that returns a class whose static work writes through an alias of the
getter's receiver changes that receiver. The definition-time walk now visits
static work too; `this` inside it stays the class.

Refs #9229

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:44:47 +01:00
91297ca745 fix(javascript): decide a socket host member by its string type
net and tls connect through options.host || "localhost" and throw
ERR_INVALID_ARG_TYPE from the call when that is not a string, so a truthy
non-string host leaves no socket. Read the final host, path and TLS socket
members through one option reader shared with the TLS protocol-version
check, and drop the acquisition only when the host is statically truthy and
not a string while no truthy path or TLS socket, or an Object.prototype
write that may supply one, skips the host read.

The truthy and falsy host tests come from #9380. Its intrinsic-prototype
gating changes are not included.

Fixes #10002

Co-Authored-By: 吴佳浩 <wujiahao@supremind.com>
Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:44:47 +01:00
mohammadasim224andgensokyo-dev f99d73bf39 fix(javascript): follow Electron through aliases of Webpack externals
General provenance only knew a literal require, so a bundled Electron
external held in one binding and destructured from another
(`const s=n(K);const{BrowserWindow}=s`) lost its windows and IPC. The
Electron binding origin now follows stable lexical aliases, and stops at
a rebindable binding that direct eval may have changed.

Fixes #4490
Supersedes #6993

Squashed from #6993 and rebased onto main. Rebase adaptation: the walk
uses the caller-selectable precision.alias_selections budget (the fixed
SEMANTIC_ALIAS_SELECTION_LIMIT it used was removed by #9706) and records
alias-selections when it stops there; a test pins that an over-budget
chain is not claimed and the limit is reported.

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:44:47 +01:00
dimxxkunandgensokyo-dev 3a25046b8c fix(javascript): preserve trailing-slash exports uncertainty
Fixes #9998
Supersedes #10107

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:44:47 +01:00
SahinurDEVandgensokyo-dev f81cbd0c43 fix(javascript): keep computed definition key conversion effects
Defining a computed class or object member converts its key to a property
name, so preserve that coercion escape alongside the key expression walk.
Reuse javaScriptComputedDefinitionKey for computed-key ownership in the
getter result walker instead of repeating the check.

Refs #9229

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:44:47 +01:00
SahinurDEVandgensokyo-dev 4a42707544 fix(javascript): project class definition-time effects through getters
Computed keys and superclass expressions evaluate against the enclosing
getter receiver. Visit those definition-time expressions when collecting
accessor effects, and walk past class/method boundaries in #ownsThis when
the path arrives from heritage or a computed key so receiver writes are
not dropped.

Fixes #9229

Supersedes #9233

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:44:47 +01:00
gensokyo-devandgensokyo-dev 4d6262303d fix(mcp): keep the ledger's retention refusal with a partial observation
When recording a completed partial observation failed, delivery always
returned it as inline Evidence with retention "unknown" and dropped
the ledger's error, although the ledger already says whether the record
is retained (retained-evidence) or not (unretained-evidence) on a
capacity refusal. Delivery now uses that fact when the ledger names
this record, falls back to unknown only without one, and adds the
refusal as retention_error (without repeating the partial), the same
shape the MCP response-budget replacement already uses.

Refs #8425

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:47 +01:00
c9f33aaa82 fix(decompile): keep the provider's null-pseudocode reason on inline failures
decompile_all inline failure rows (failures and last_failures) carried
only address, code, message and name, so the provider's typed
pseudocode_absence reason stayed in the index only. Rows now include
pseudocode_absence. When the inline budget is short the name is dropped
first, then the reason, before the row; the index always keeps both.

Fixes #8731

The report and an earlier manifest-note approach are from #8735 by
wunianze666-netizen.

Co-Authored-By: wunianze666-netizen <wunianze666@gmail.com>
Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:47 +01:00
gensokyo-devandgensokyo-dev 9d2a57fd8d fix(decompile): keep each successful batch item's own limitations
A successful batch_decompile item carried no item-level provenance:
only the batch Evidence aggregated limitations, so when a provider such
as Kuna answered repeated selectors from different sources, the caveat
did not say which occurrence it applied to. Successful items now keep
their own observation's limitations (exactOptional, so retained records
still parse), and the retained items view projects them.

The batch unavailable item also dropped the provider's typed
pseudocodeAbsence reason; it now carries pseudocode_absence.

Fixes #8350

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:47 +01:00
gensokyo-devandgensokyo-dev 6cfc2fa62d fix(contracts): advertise name reservations without look-around
Dropping the look-ahead patterns left the advertised schemas admitting
Windows device names, numeric hostnames and build host-control settings that
the runtime refuses. State those exclusions with JSON Schema `not` instead,
which strict clients compile: `not` patterns for reserved and numeric
bundle names, and `not: {enum}` for the host-control setting names.

Refs #10389

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:39 +01:00
d734e6424d fix(cli): advertise parsed JSON documents in --schema
`--schema` for JSON-input CLI commands showed only an opaque
`inputJson` string, so callers could not see the document the command
actually parses. The argument now carries the decoded document as its
contentSchema, built from the same contract each command or its service
parses with (the Evidence input frame, or the ledger and coverage
request schemas). `$schema` is stripped, and a schema JSON Schema cannot
represent is refused rather than advertised as {}.

Fixes #9195
Supersedes #9283

Squashed from #9283 (with morluto's validation test) and rebased onto
main; the coverage test now expects boundary_id's stable-identifier
pattern from #9919. #9214 by 1052326311 took the same approach.

Co-Authored-By: morluto <76467478+morluto@users.noreply.github.com>
Co-Authored-By: 1052326311 <65798732+1052326311@users.noreply.github.com>
Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:39 +01:00
wunianze666-netizenandgensokyo-dev 3e95d22dd4 fix(cli): report observe-web-session progress on stderr
MCP passes progress to observeWebSession, but the CLI did not, so a
caller of `rea observe-web-session` never saw the armed observation
window it must wait for before acting. Three CLI commands also each
wrote their own copy of the same stderr progress line.

One cliProgress module now owns the stderr progress line and reporter.
observe-web-session uses it, as do web runtime, JavaScript application
and desktop capture progress. The CDP session also stops reporting
readiness once collection is no longer active, so a stopped capture does
not invite the external action.

Fixes #8141
Supersedes #8149

Based on #8149; the desktop capture copy now shares the line writer too.

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:39 +01:00
gensokyo-devandgensokyo-dev fee267759d fix(desktop): keep the advertised apt suite pattern valid in v-mode
The start_build_computer apt `suite` pattern, added after #10423's base,
had an unescaped / inside a character class, which the v flag refuses.
The full-profile guard from #10423 caught it. Spell it \x2f, as the
same pattern already spells -.

Refs #10389

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:39 +01:00
41625d7d1b docs(web): state the segment limit in the template_rules description
The template_rules description said prefix-variance applies "at any
method or length", but sibling-variance, sibling-pair-variance and
prefix-variance compare only routes of at most 32 segments. The
description now states that limit, built from SEGMENT_LIMITED_RULES and
SIBLING_VARIANCE_SEGMENT_LIMIT so it cannot drift from the code.

Fixes #7388

Based on #7446 by theo-73.

Co-Authored-By: theo-73 <tejas38293@gmail.com>
Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:39 +01:00
67f3190def docs(native): say inspect_macho segment offsets are slice-relative
The inspect_macho catalog description did not say that segment and
section file offsets are relative to the selected slice, so callers of
a universal binary read them as input-file offsets. It now names
selected_architecture.container_file_offset as the addend.

Fixes #8302

Based on #8345 by deepakrakshit, reduced to one clause in the compact
description.

Co-Authored-By: deepakrakshit <deepakrakshit505@gmail.com>
Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:39 +01:00
gensokyo-devandgensokyo-dev cf58037726 fix(setup): show a known manual step in the interactive dry run
The approval prompt now discloses a client's manual completion step,
but the interactive TTY dry run still printed only the planned file
changes, so `rea setup --dry-run --client grok_bot` hid the Grok Bot
connector step. The dry-run renderer now prints the planned result's
remediation the same way.

Refs #7692

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:39 +01:00
Avocadoandgensokyo-dev 4d02bc82b3 fix(setup): disclose manual connector steps before approval
Fixes #7692
Supersedes #7792

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:39 +01:00
gensokyo-devandgensokyo-dev 4e8e1f5346 test(process): pass the capture resource scope in the removed-observer test
prepareProcessCapture takes the run's resource scope on main.

Refs #7281

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:39 +01:00
70960d253d fix(mcp): traverse contentSchema in schema keyword normalization
Fixes #7123

Supersedes #7122

Co-authored-by: mawahnnie <198902683+mawahnnie@users.noreply.github.com>
Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:39 +01:00
ducanhnguyen223andgensokyo-dev cf9e7f7dad test(process): skip POSIX observer errors on Windows
Refs #7281

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-11-14 14:16:39 +01:00