[GH-ISSUE #8198] [Bug] UI trace pairs Objective-C handler addresses with method-record file offsets #6480

Closed
opened 2026-11-01 21:11:28 +00:00 by bsakaguchi · 8 comments
Owner

Originally created by @morluto on GitHub (Oct 30, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/8198

Originally assigned to: @kaoru0822-kitauji on GitHub.

Before submitting

  • I searched the open and closed issues and pull requests for a related report.
  • I removed credentials, tokens, private paths, and sensitive target data.

Area

Native analysis / MCP Evidence projection.

Observed behavior

trace_native_ui_action combines an Objective-C handler's implementation address with the file offset of its encoded method-list entry. On an authored arm64 app, the function node reports { "address": "0x10000077c", "file_offset": 1944 }. In the same real Ghidra MCP session, address_to_file_offset maps that function address to 1916. Offset 1944 maps to the distinct encoded method entry at 0x100000798.

The underlying inspect_native_dispatch_metadata observation correctly separates implementation_address: "0x10000077c" from its method-record location: {"address":"0x100000798","file_offset":1944}. The UI graph node also retains an Evidence item describing the method entry at that correct record location. The inconsistency is in the node's combined implementation location, not the record Evidence.

Reproduction

Compile an arm64 AppKit app with an AuditController class, an IBAction named runAction:, and a compiled NIB button connected to that action. In a real REA MCP session, call open_binary on the .app, trace_native_ui_action({"action":"runAction:"}), inspect_native_dispatch_metadata, and address_to_file_offset for the returned handler and record addresses. The owned unexecuted fixture used here contains this handler:

__attribute__((noinline)) void audit_tail_sink(id value) { __asm__ volatile("" : : "r"(value) : "memory"); }
@interface AuditController : NSViewController
- (IBAction)runAction:(id)sender;
@end
@implementation AuditController
- (IBAction)runAction:(id)sender { audit_tail_sink(sender); }
@end

The binary was built with clang -arch arm64 -O2 -framework Cocoa; the NIB was built with ibtool from a self-authored XIB. The same incorrect node location appeared with Ghidra and Kuna as selected providers. address_to_file_offset was verified with Ghidra; original target bytes were not executed or changed.

Expected behavior

The handler node's location.address and location.file_offset must describe the same implementation location, or the file offset must remain explicitly unknown. Keep the method-record address and offset in its own Evidence location; do not substitute it for the function's file offset.

Impact and scope

An agent using the function node's offset to inspect the handler's bytes may instead inspect the Objective-C metadata entry. This is one thin Mach-O fixture, not a claim about every selector, provider, FAT slice, or method-record encoding.

REA version

d48e472fa plus unrelated Kuna baseline changes in #8187.

Runtime and platform

macOS arm64; Node 24.22.1; Ghidra 12.1.4; Kuna 1.986.

Target and artifact context

Owned app executable SHA-256 c2bf21802d31ce75925deef6cfc84c29fb768d68eb9f31a233652617957ddd79; the compiled NIB and executable were not run.

Interface

Real stdio MCP: trace_native_ui_action, inspect_native_dispatch_metadata, address_to_file_offset, and read_bytes.

Earliest failure stage

Native UI graph projection after the metadata reader has produced distinct implementation and method-record locations.

Relevant output or evidence

  • Function node: address 0x10000077c, reported offset 1944.
  • Method-record Evidence: address 0x100000798, offset 1944.
  • REA/Ghidra mapping: 0x10000077c -> 1916; 0x100000798 -> 1944.
  • read_bytes at the actual handler returned e00302aafeffff17.

Source-derived cause: src/domain/native/nativeInvestigationGraph.ts constructs the function location using implementation.implementation_address and implementation.location.file_offset, though the latter identifies the metadata record for this binary.

Typed outcome or recovery expected

Keep distinct record and implementation locations with truthful address-to-file mapping; preserve explicit unknown when implementation offset is not proven. Regression coverage should include an encoded record distinct from its implementation, symbol-only metadata with null offsets, and selected-slice/container offsets. Exercise the real public workflow where feasible.

Analysis or suspected cause

The projection reuses a record-location offset for a different interpretation without proving that the two addresses coincide. A source- or mapping-owned implementation offset would require an explicit provenance and coordinate contract.

Originally created by @morluto on GitHub (Oct 30, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/8198 Originally assigned to: @kaoru0822-kitauji on GitHub. ### Before submitting - [x] I searched the open and closed issues and pull requests for a related report. - [x] I removed credentials, tokens, private paths, and sensitive target data. ### Area Native analysis / MCP Evidence projection. ### Observed behavior `trace_native_ui_action` combines an Objective-C handler's implementation address with the file offset of its encoded method-list entry. On an authored arm64 app, the function node reports `{ "address": "0x10000077c", "file_offset": 1944 }`. In the same real Ghidra MCP session, `address_to_file_offset` maps that function address to **1916**. Offset 1944 maps to the distinct encoded method entry at `0x100000798`. The underlying `inspect_native_dispatch_metadata` observation correctly separates `implementation_address: "0x10000077c"` from its method-record `location: {"address":"0x100000798","file_offset":1944}`. The UI graph node also retains an Evidence item describing the method entry at that correct record location. The inconsistency is in the node's combined implementation location, not the record Evidence. ### Reproduction Compile an arm64 AppKit app with an `AuditController` class, an `IBAction` named `runAction:`, and a compiled NIB button connected to that action. In a real REA MCP session, call `open_binary` on the `.app`, `trace_native_ui_action({"action":"runAction:"})`, `inspect_native_dispatch_metadata`, and `address_to_file_offset` for the returned handler and record addresses. The owned unexecuted fixture used here contains this handler: ```objc __attribute__((noinline)) void audit_tail_sink(id value) { __asm__ volatile("" : : "r"(value) : "memory"); } @interface AuditController : NSViewController - (IBAction)runAction:(id)sender; @end @implementation AuditController - (IBAction)runAction:(id)sender { audit_tail_sink(sender); } @end ``` The binary was built with `clang -arch arm64 -O2 -framework Cocoa`; the NIB was built with `ibtool` from a self-authored XIB. The same incorrect node location appeared with Ghidra and Kuna as selected providers. `address_to_file_offset` was verified with Ghidra; original target bytes were not executed or changed. ### Expected behavior The handler node's `location.address` and `location.file_offset` must describe the same implementation location, or the file offset must remain explicitly unknown. Keep the method-record address and offset in its own Evidence location; do not substitute it for the function's file offset. ### Impact and scope An agent using the function node's offset to inspect the handler's bytes may instead inspect the Objective-C metadata entry. This is one thin Mach-O fixture, not a claim about every selector, provider, FAT slice, or method-record encoding. ### REA version `d48e472fa` plus unrelated Kuna baseline changes in #8187. ### Runtime and platform macOS arm64; Node 24.22.1; Ghidra 12.1.4; Kuna 1.986. ### Target and artifact context Owned app executable SHA-256 `c2bf21802d31ce75925deef6cfc84c29fb768d68eb9f31a233652617957ddd79`; the compiled NIB and executable were not run. ### Interface Real stdio MCP: `trace_native_ui_action`, `inspect_native_dispatch_metadata`, `address_to_file_offset`, and `read_bytes`. ### Earliest failure stage Native UI graph projection after the metadata reader has produced distinct implementation and method-record locations. ### Relevant output or evidence - Function node: address `0x10000077c`, reported offset `1944`. - Method-record Evidence: address `0x100000798`, offset `1944`. - REA/Ghidra mapping: `0x10000077c -> 1916`; `0x100000798 -> 1944`. - `read_bytes` at the actual handler returned `e00302aafeffff17`. Source-derived cause: `src/domain/native/nativeInvestigationGraph.ts` constructs the function location using `implementation.implementation_address` and `implementation.location.file_offset`, though the latter identifies the metadata record for this binary. ### Typed outcome or recovery expected Keep distinct record and implementation locations with truthful address-to-file mapping; preserve explicit unknown when implementation offset is not proven. Regression coverage should include an encoded record distinct from its implementation, symbol-only metadata with null offsets, and selected-slice/container offsets. Exercise the real public workflow where feasible. ### Analysis or suspected cause The projection reuses a record-location offset for a different interpretation without proving that the two addresses coincide. A source- or mapping-owned implementation offset would require an explicit provenance and coordinate contract.
Author
Owner

@morluto commented on GitHub (Oct 31, 2026):

Looping in @gensokyo-dev @kaoru0822-kitauji @N0zoM1z0 for visibility on the Ghidra, Kuna, and REA tool-design investigation.

<!-- gh-comment-id:6538794228 --> @morluto commented on GitHub (Oct 31, 2026): Looping in @gensokyo-dev @kaoru0822-kitauji @N0zoM1z0 for visibility on the Ghidra, Kuna, and REA tool-design investigation.
Author
Owner

@morluto commented on GitHub (Oct 31, 2026):

Real CLI and second fixture control

On REA b43c329df779708e43ae297f498a844e45d9c923 with Ghidra 12.1.4 on macOS arm64, rea trace-native-ui-action <owned UIAudit.app> 'runAction:' --provider ghidra --max-depth 3 --max-nodes 40 --max-edges 80 --format json --full-output succeeded and included an Objective-C handler node with address 0x1000008a0 and file offset 2344. Its embedded binary-metadata Evidence separately names the method-entry address 0x100000928 and offset 2344.

In a subsequent real Ghidra MCP session on the same target, address_to_file_offset returned 2208 for handler address 0x1000008a0 and 2344 for metadata-entry address 0x100000928. This extends the original report to CLI delivery and a second compiled UI fixture; it does not establish all formats or encodings. The executable SHA-256 was 6672860af92d9cca5b01e373bc52c66726c495b5413ade073518aba8876f47b7; its digest matches the CLI observation. All six app-file content hashes were unchanged across the MCP mapping control. The fixture was not executed.

<!-- gh-comment-id:6541490522 --> @morluto commented on GitHub (Oct 31, 2026): ### Real CLI and second fixture control On REA `b43c329df779708e43ae297f498a844e45d9c923` with Ghidra 12.1.4 on macOS arm64, `rea trace-native-ui-action <owned UIAudit.app> 'runAction:' --provider ghidra --max-depth 3 --max-nodes 40 --max-edges 80 --format json --full-output` succeeded and included an Objective-C handler node with address `0x1000008a0` and file offset `2344`. Its embedded binary-metadata Evidence separately names the method-entry address `0x100000928` and offset `2344`. In a subsequent real Ghidra MCP session on the same target, `address_to_file_offset` returned `2208` for handler address `0x1000008a0` and `2344` for metadata-entry address `0x100000928`. This extends the original report to CLI delivery and a second compiled UI fixture; it does not establish all formats or encodings. The executable SHA-256 was `6672860af92d9cca5b01e373bc52c66726c495b5413ade073518aba8876f47b7`; its digest matches the CLI observation. All six app-file content hashes were unchanged across the MCP mapping control. The fixture was not executed.
Author
Owner

@morluto commented on GitHub (Oct 31, 2026):

Real CLI handoff to decompilation

On the previously reported UIAudit.app fixture with REA b43c329 / Ghidra 12.1.4, I followed the UI handler node's two coordinates through the public CLI:

  • The node reports implementation address 0x1000008a0 and file offset 2344. rea decompile <app> --procedure 0x1000008a0 --provider ghidra succeeded and returned AuditController::runAction_.
  • Converting the reported offset to hexadecimal and calling rea decompile <app> --file-offset 0x928 --provider ghidra failed: Ghidra mapped it to 0x100000928, where no procedure started or contained that address. This is the separately identified method-record address.
  • Independently mapping the handler address gave offset 2208; --file-offset 0x8a0 returned the same handler pseudocode as the implementation-address call. All six app-file content hashes were unchanged. The app was not executed.

This shows an actual broken handoff for this fixture; it does not imply the wrong offset always fails, since another layout could place it inside a different function. Use the node's implementation address for this case and separately map it when an offset is required.

There is a separate input-format friction: directly passing either decimal number as --file-offset 2344 or --file-offset 2208 failed CLI validation, because the declared schema requires a 0x-prefixed hexadecimal string. The command's --help says it takes a source-file offset but does not state the hex requirement; --schema does show the pattern. This does not cause the incorrect coordinate, and #8178 covers the broader address/offset selection design. Initial decimal attempts and subsequent corrected hex attempts are both reported above. The invalid-offset error suggested a procedure search; I ran that exact suggested --json search and it succeeded.

<!-- gh-comment-id:6542307878 --> @morluto commented on GitHub (Oct 31, 2026): ### Real CLI handoff to decompilation On the previously reported `UIAudit.app` fixture with REA `b43c329` / Ghidra 12.1.4, I followed the UI handler node's two coordinates through the public CLI: - The node reports implementation address `0x1000008a0` and file offset **2344**. `rea decompile <app> --procedure 0x1000008a0 --provider ghidra` succeeded and returned `AuditController::runAction_`. - Converting the reported offset to hexadecimal and calling `rea decompile <app> --file-offset 0x928 --provider ghidra` failed: Ghidra mapped it to `0x100000928`, where no procedure started or contained that address. This is the separately identified method-record address. - Independently mapping the handler address gave offset **2208**; `--file-offset 0x8a0` returned the same handler pseudocode as the implementation-address call. All six app-file content hashes were unchanged. The app was not executed. This shows an actual broken handoff for this fixture; it does not imply the wrong offset always fails, since another layout could place it inside a different function. Use the node's implementation address for this case and separately map it when an offset is required. There is a separate input-format friction: directly passing either decimal number as `--file-offset 2344` or `--file-offset 2208` failed CLI validation, because the declared schema requires a `0x`-prefixed hexadecimal string. The command's `--help` says it takes a source-file offset but does not state the hex requirement; `--schema` does show the pattern. This does not cause the incorrect coordinate, and #8178 covers the broader address/offset selection design. Initial decimal attempts and subsequent corrected hex attempts are both reported above. The invalid-offset error suggested a procedure search; I ran that exact suggested `--json` search and it succeeded.
Author
Owner

@morluto commented on GitHub (Oct 31, 2026):

Why the inspected tests did not catch this

At affected REA revision b43c329, I ran npm run test:local -- src/domain/native/nativeInvestigationGraph.test.ts (19 passed) and npm run test:focused -- tests/boundary/mcp/nativeUiAvailability.test.ts (11 passed). The first attempted to run both under test:local; the runner correctly refused the boundary test and I reran each with its supported command. Neither run exercised a real provider.

The graph tests I inspected primarily assert dispatch joins, resolutions and coverage. Their decoded metadata examples use the same address for implementation_address and location.address; their placeholder example uses a null file offset. The MCP availability fixture builds symbol-derived dispatch metadata and checks route availability and dispatch edges. These are useful controls for their intended semantics, but the inspected assertions do not compare an implementation's address and offset against an independently mapped real method entry. The inspected standard Ghidra and Kuna real-provider verifier scripts do not call trace_native_ui_action; this is not a claim that every other test or verifier was exhaustively analyzed. The named test and verifier files are unchanged between b43c329 and local origin/main 23de10b.

A task-level regression can use a source-owned compiled app with a real encoded Objective-C method record at a different location from its handler. Invoke public trace_native_ui_action and inspect_native_dispatch_metadata, map the returned handler address independently with real Ghidra, and check that any non-null handler offset maps to the handler—not the method record. Also retain the record's own correctly located evidence; a truthful unknown handler offset is acceptable if mapping is unavailable. Exercise selected-slice/container and symbol-only cases as separate controls rather than treating one fixed offset as universal. No target execution or UI launch is required.

<!-- gh-comment-id:6542316556 --> @morluto commented on GitHub (Oct 31, 2026): ### Why the inspected tests did not catch this At affected REA revision `b43c329`, I ran `npm run test:local -- src/domain/native/nativeInvestigationGraph.test.ts` (19 passed) and `npm run test:focused -- tests/boundary/mcp/nativeUiAvailability.test.ts` (11 passed). The first attempted to run both under `test:local`; the runner correctly refused the boundary test and I reran each with its supported command. Neither run exercised a real provider. The graph tests I inspected primarily assert dispatch joins, resolutions and coverage. Their decoded metadata examples use the same address for `implementation_address` and `location.address`; their placeholder example uses a null file offset. The MCP availability fixture builds symbol-derived dispatch metadata and checks route availability and dispatch edges. These are useful controls for their intended semantics, but the inspected assertions do not compare an implementation's address and offset against an independently mapped real method entry. The inspected standard Ghidra and Kuna real-provider verifier scripts do not call `trace_native_ui_action`; this is not a claim that every other test or verifier was exhaustively analyzed. The named test and verifier files are unchanged between `b43c329` and local `origin/main` `23de10b`. A task-level regression can use a source-owned compiled app with a real encoded Objective-C method record at a different location from its handler. Invoke public `trace_native_ui_action` and `inspect_native_dispatch_metadata`, map the returned handler address independently with real Ghidra, and check that any non-null handler offset maps to the handler—not the method record. Also retain the record's own correctly located evidence; a truthful unknown handler offset is acceptable if mapping is unavailable. Exercise selected-slice/container and symbol-only cases as separate controls rather than treating one fixed offset as universal. No target execution or UI launch is required.
Author
Owner

@morluto commented on GitHub (Oct 31, 2026):

Additional test-scope control: REA already has a separate real verify:interface-builder lane, and I ran it successfully on this macOS host at b43c329. It builds a compiled AppKit NIB and exercises decode-interface-builder through public CLI and stdio MCP, including action connections and boolean polarity. CI's Apple artifact job invokes it. This is valuable real-archive coverage, not a simulated provider test.

That verifier's compiled executable fixture is int main(void) { return 0; }; the inspected verifier does not call trace_native_ui_action or assert an Objective-C handler implementation/address-to-file-offset join. Its passing result therefore does not contradict the real UI handler mismatch above. A regression could extend this existing Apple workflow or add a provider-gated companion with an actual Objective-C handler and real Ghidra, subject to the project's CI/provider setup. The verifier, fixture, and CI workflow were unchanged between b43c329 and local origin/main 23de10b.

<!-- gh-comment-id:6542320432 --> @morluto commented on GitHub (Oct 31, 2026): Additional test-scope control: REA already has a separate **real** `verify:interface-builder` lane, and I ran it successfully on this macOS host at `b43c329`. It builds a compiled AppKit NIB and exercises `decode-interface-builder` through public CLI and stdio MCP, including action connections and boolean polarity. CI's Apple artifact job invokes it. This is valuable real-archive coverage, not a simulated provider test. That verifier's compiled executable fixture is `int main(void) { return 0; }`; the inspected verifier does not call `trace_native_ui_action` or assert an Objective-C handler implementation/address-to-file-offset join. Its passing result therefore does not contradict the real UI handler mismatch above. A regression could extend this existing Apple workflow or add a provider-gated companion with an actual Objective-C handler and real Ghidra, subject to the project's CI/provider setup. The verifier, fixture, and CI workflow were unchanged between `b43c329` and local `origin/main` `23de10b`.
Author
Owner

@morluto commented on GitHub (Oct 31, 2026):

A second existing CI lane covers the other half independently: npm run verify:apple-dispatch passed on this macOS host at b43c329. It built and statically inspected Objective-C fixtures with symbolized and stripped variants, multiple dyld/fixup encodings including arm64e, and also Swift cases; its report says the targets were not executed. The verifier checks that selected implementation addresses exist and exercises inspect_native_dispatch_metadata through public CLI/MCP for one variant. It does not join that metadata to a compiled NIB action or check the UI graph node's implementation/file-offset pair.

Together, the existing real Interface Builder and dispatch verifiers cover the producers; the missing check is the composed boundary between them and the real provider's address mapping. A regression can reuse their fixture-building patterns, while keeping the existing independent tests useful. The inspected dispatch verifier source was unchanged at local origin/main 23de10b.

<!-- gh-comment-id:6542325372 --> @morluto commented on GitHub (Oct 31, 2026): A second existing CI lane covers the other half independently: `npm run verify:apple-dispatch` passed on this macOS host at `b43c329`. It built and statically inspected Objective-C fixtures with symbolized and stripped variants, multiple dyld/fixup encodings including arm64e, and also Swift cases; its report says the targets were not executed. The verifier checks that selected implementation addresses exist and exercises `inspect_native_dispatch_metadata` through public CLI/MCP for one variant. It does not join that metadata to a compiled NIB action or check the UI graph node's implementation/file-offset pair. Together, the existing real Interface Builder and dispatch verifiers cover the producers; the missing check is the composed boundary between them and the real provider's address mapping. A regression can reuse their fixture-building patterns, while keeping the existing independent tests useful. The inspected dispatch verifier source was unchanged at local `origin/main` `23de10b`.
Author
Owner

@morluto commented on GitHub (Oct 31, 2026):

Universal Mach-O control with selected-slice provenance

I built an unexecuted x86-64/arm64 universal AppKit app from the same source and NIB, then exercised real REA b43c329 MCP on macOS arm64. Forced Ghidra and Kuna correctly refused the universal executable under their current provider boundaries. Automatic selection opened it as arm64 and used Hopper's verified private thin image for provider operations, while retaining the universal executable as the Evidence subject.

trace_native_ui_action({action:"runAction:"}) returned handler address 0x100000784 paired with container file offset 34752. inspect_native_dispatch_metadata identified that offset as the distinct encoded method record at 0x1000007c0. REA/Hopper address_to_file_offset instead mapped the handler to container offset 34692, with provider thin-image offset 1924 and slice base 32768. A separate real Ghidra session on the independently compiled arm64 thin file also mapped the handler to 1924 and decompiled the named handler. nm -m identifies the handler at 0x100000784; the selected container slice was byte-for-byte identical to that thin file, and the handler bytes at container 34692 matched thin offset 1924. The bytes at record offset 34752 differed.

Both auto-provider and Ghidra control sessions closed successfully. All app-file hashes and the separate thin-file hash stayed unchanged; neither target ran. This extends the mismatch to one universal-container layout and checks actual container-versus-slice coordinates, not all FAT layouts or architecture-selection modes. It does not imply Ghidra/Kuna can analyze the universal container directly. The existing source fix needs to avoid copying the record offset even when it is already correctly relative to the original container.

<!-- gh-comment-id:6542336869 --> @morluto commented on GitHub (Oct 31, 2026): ### Universal Mach-O control with selected-slice provenance I built an unexecuted x86-64/arm64 universal AppKit app from the same source and NIB, then exercised real REA `b43c329` MCP on macOS arm64. Forced Ghidra and Kuna correctly refused the universal executable under their current provider boundaries. Automatic selection opened it as arm64 and used Hopper's verified private thin image for provider operations, while retaining the universal executable as the Evidence subject. `trace_native_ui_action({action:"runAction:"})` returned handler address `0x100000784` paired with container file offset **34752**. `inspect_native_dispatch_metadata` identified that offset as the distinct encoded method record at `0x1000007c0`. REA/Hopper `address_to_file_offset` instead mapped the handler to container offset **34692**, with provider thin-image offset **1924** and slice base **32768**. A separate real Ghidra session on the independently compiled arm64 thin file also mapped the handler to **1924** and decompiled the named handler. `nm -m` identifies the handler at `0x100000784`; the selected container slice was byte-for-byte identical to that thin file, and the handler bytes at container 34692 matched thin offset 1924. The bytes at record offset 34752 differed. Both auto-provider and Ghidra control sessions closed successfully. All app-file hashes and the separate thin-file hash stayed unchanged; neither target ran. This extends the mismatch to one universal-container layout and checks actual container-versus-slice coordinates, not all FAT layouts or architecture-selection modes. It does not imply Ghidra/Kuna can analyze the universal container directly. The existing source fix needs to avoid copying the record offset even when it is already correctly relative to the original container.
Author
Owner

@ShuaixinHuang commented on GitHub (Oct 31, 2026):

@morluto My account (@ShuaixinHuang) currently has eight open PRs in this repository: #8246, #8247, #8250, #8252, #8253, #8256, #8258, and #8259.

The GitHub comparison page reports an eight-open-PR limit for contributors without write access, so I cannot open an additional PR for #8198 at present.

The scoped fix for this issue is committed and preserved on codex/fix-native-ui-handler-location, at 2262e3be9. I will keep it queued until an open-PR slot becomes available.

<!-- gh-comment-id:6544147459 --> @ShuaixinHuang commented on GitHub (Oct 31, 2026): @morluto My account (@ShuaixinHuang) currently has eight open PRs in this repository: #8246, #8247, #8250, #8252, #8253, #8256, #8258, and #8259. The GitHub comparison page reports an eight-open-PR limit for contributors without write access, so I cannot open an additional PR for #8198 at present. The scoped fix for this issue is committed and preserved on [codex/fix-native-ui-handler-location](https://github.com/ShuaixinHuang/rea/tree/codex/fix-native-ui-handler-location), at [2262e3be9](https://github.com/ShuaixinHuang/rea/commit/2262e3be91897167d0c828a5de9aa74bc7a3da2e). I will keep it queued until an open-PR slot becomes available.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#6480
No description provided.