Skip to content

fix(ui): preserve native open actions and password prompts - #1914

Merged
skylartaylor merged 2 commits into
mainfrom
fix/native-open-continuations
Oct 13, 2026
Merged

skylartaylor merged 2 commits into
mainfrom
fix/native-open-continuations

Conversation

@skylartaylor

@skylartaylor skylartaylor commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

What this changes

Choosing Export Text from Home opened the picked PDF on the native worker but forgot the selected tool. The request now retains its command through preparation and password retries, and runs it after the requested document commits. Successful text/image conversion uses the same continuation; cancellation and failed opening leave existing documents alone.

A startup download could also create its password prompt while local authentication was pending. Completing the local open cleared that unrelated prompt. Startup intake now waits for pending native preparation while retaining the existing modal and remote-link permission guards.

The native UI tests now wait for document/password completion and interactive controls, retaining their content, active-document, dirty-state, destination and recovery checks. Refused linked-PDF targets now await their specific validation error and verify the source document stays intact. The byte comparison retains the exact generated fixture written to disk, including its timestamp. The wheel test follows the configured platform speed. The invalid-filename fixture reports macOS EILSEQ capability limits explicitly and runs a valid-Unicode batch companion; supporting filesystems still exercise the original invalid-name case, and other I/O errors fail.

How you verified it

  • Eight controlled native worker tests passed. Reverting the production fixes on the reviewed main reproduced five intended failures; restoring them passed all eight again. Cases include another document opening during preparation, conversion, wrong/correct passwords, picker/password cancellation, failed input and background startup prompts.
  • cargo xtask ci: all eight gates passed; 3,018 native tests passed, 14 existing ignored, zero failures. The 31 library crates compiled for Wasm. Strict native Clippy passed; inherited target-specific Wasm warnings remain.
  • Formatting, strict all-target Clippy, native tests, assets, layers, dependency audit, parity and Wasm compiler checks are covered by the local gate receipt. Wasm compilation is separate from browser execution.
  • Synthetic fixtures only. Printing transports and destinations were rejected during testing.

Review and scope

The broader opening work in #1634 overlaps these continuations; this is a focused repair of the two regressions on current main following #1493. Product changes are confined to the UI opening path, with permanent regressions and scoped test/documentation updates. Parity statuses and estimates are unchanged.

No new dependencies, assets, fonts, unsafe code, product panic paths or network access. The existing opt-in control/MCP behavior and root confinement are retained.

M3: carry chosen tools through native preparation and password retries, defer startup intake during pending opens, and await actual native completion in tests.
M3: wait for the intended native target refusal, retain document state checks, and compare against the exact once-generated bytes written to disk.
@skylartaylor

Copy link
Copy Markdown
Contributor Author

Windows CI caught one linked-PDF fixture expecting an error after three frames. The held-worker trace confirms validation is still pending then. The tests now await the intended refusal and compare the exact bytes written to disk, retaining the original document checks. All local gates pass; I’m waiting for complete CI on the new head before merging.

@skylartaylor
skylartaylor merged commit b5467d9 into main Oct 13, 2026
5 checks passed
skylartaylor added a commit to jcl-bit/printcraft that referenced this pull request Oct 13, 2026
Merge the native-opening fixes from storytold#1914, retaining its production code and readiness/security assertions. Preserve the independent opening barriers and the bounded native-print validation note from storytold#1132.
sanyamsingh001 added a commit to sanyamsingh001/pdfcraft that referenced this pull request Oct 13, 2026
Check admission before each prepared result so a modal or queued picker keeps its document recipient. Wake retained replies once after picker consumption or worker abandonment.

Preserve merged storytold#1914 continuation/startup behavior and the three worker regressions from upstream 3f044b6 (jcl-bit and its recorded coauthors). Keep the inherited printing/dependency changes intact; add only the remaining ownership barrier, wakes and focused regressions.

Co-authored-by: Codex <codex@openai.com>
echelon added a commit that referenced this pull request Oct 15, 2026
Check admission before each prepared result so a modal or queued picker keeps its document recipient. Wake retained replies once after picker consumption or worker abandonment.

Preserve merged #1914 continuation/startup behavior and the three worker regressions from upstream 3f044b6 (jcl-bit and its recorded coauthors). Keep the inherited printing/dependency changes intact; add only the remaining ownership barrier, wakes and focused regressions.

Co-authored-by: sanyamsingh001 <314051937+sanyamsingh001@users.noreply.github.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
@LabDennis LabDennis mentioned this pull request Oct 15, 2026
13 tasks done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant