Skip to content

Data Loader native source verification

This records implementation evidence for the Data Loader design and DL-05 / map-holons #779. Supported desktops are macOS and Linux.

Backend capability matrix

The implementation uses RFD 0.17.2, Cocoa NSOpenPanel on macOS and the XDG Desktop Portal backend on Linux (with the library's Zenity fallback). API/source inspection establishes the following capabilities; it does not establish that native interaction has passed on a particular desktop.

Capability macOS Linux
Multiple files Exposed by backend Exposed by backend
Directory with recursive host discovery Exposed by backend Exposed by backend
Multiple directories Exposed by backend Exposed by backend
Mixed files/directories in one selection Exposed by macOS-only API Not exposed; interim separate-choice modes
Cancellation Optional selection result Optional selection result
Native smoke verification Unverified: automation timed out on macOS 26.5.2 arm64 Pending; Linux desktop unavailable in current environment

Evidence: RFD 0.17.2 file dialog source and backend/runtime requirements. Linux deployment needs a working desktop portal backend and Zenity as documented by RFD. Record distribution, desktop environment, session type (X11/Wayland), and portal backend/version when testing. Do not claim all Linux desktops have been verified from a single environment.

The RFD API returns an optional selection rather than a structured native error. Some backend failures can therefore look like dismissal. MAP reports command failures and discovery/read errors separately, but cannot recover information that the native library discarded. This limitation remains explicit.

Executable verification

From map-holons, enter nix develop, then run:

cargo run --manifest-path host/Cargo.toml -p Conductora --example source_picker -- mixed
cargo run --manifest-path host/Cargo.toml -p Conductora --example source_picker -- files
cargo run --manifest-path host/Cargo.toml -p Conductora --example source_picker -- directories

Use mixed on macOS; Linux rejects it with an explicit unsupported-mode error. The harness invokes the same picker/discovery implementation as Conductora's select_loader_sources command. It prints retained content as well as paths: use test fixtures, not sensitive documents, when capturing its output.

Verify files, nested directories, multiple directories, overlapping selections, and same-basename JSON files. Cancel the picker and check status: cancelled. Confirm an empty directory and check status: selected with an empty source list. Repeat native checks on both platforms. The harness creates no MAP transaction.

Automated coverage lives in Conductora's source_ingress::discovery tests and host/ui/src/app/services/loader-source.test.ts. Existing runtime test preparation_builds_isolated_transient_graphs_without_execution verifies separate /one/import.json and /two/import.json bundle provenance through preparation.

Validation recorded

On macOS 26.5.2 arm64, the host source-discovery tests passed (5), the existing preparation provenance regression passed (1), and the web suite passed (299, 1 skipped), including six source-adapter tests. npm run check and npm run fmt:check passed. The native example compiled and was launched, but the computer-use service timed out before selection/cancellation could be verified. The test process was stopped; launching alone is not a native smoke-test pass. Linux compilation and native interaction have not been verified in this environment.

Remaining scope

Production ActionVisualizer integration and review UI remain DL-07 and DL-06. Linux mode-free mixed selection is tracked by map-holons #780; an interim separate-choice picker does not complete that goal. Native smoke evidence must be recorded before claiming platform verification is complete. #779 remains subject to those verification criteria.