Repository navigation
PR 1: Correct open and watch behavior (v0.6) - #19
Merged
Merged
Conversation
Replace the hand-rolled path-to-URL string transform with url::Url::from_directory_path, which percent-encodes reserved and non-ASCII characters (spaces, #, %, ?, Unicode) and handles Windows drive letters, UNC paths, and \\?\ extended-length prefixes. Paths that cannot form a valid file:// URL now omit the <base href> tag instead of emitting a broken one. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…1.1, mdo-bs3.1.3) --open now exits non-zero when the browser launch fails after a successful render, printing the error and the surviving rendered path to stderr. mdo-open propagates the child's exit status instead of always reporting success (CREATE_NO_WINDOW preserved on Windows). Watch mode now watches the parent directory and filters events to the target file, so atomic temp-file-rename saves no longer kill the watch. Trailing-edge debounce coalesces save bursts into one render and cannot drop the final event; failed renders keep the loop alive. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Windows CI now runs the full test suite instead of compile-only checking. Registry install/uninstall is split into a pure plan builder (unit-tested for key/value composition, wrapper branching, and best-effort semantics) and a thin reg.exe executor, so no test touches the real registry. New wrapper integration tests cover argument forwarding and exit-status propagation; setup-launcher argument construction gains metacharacter coverage. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Findings from an independent GPT-5.6 review plus orchestrator review: - Gate Unix-rooted dir_to_file_url tests with cfg(unix); they panicked under the new Windows CI test job because /home/... is not an absolute Windows path. - Debounce deadline is now extended only by events for the watched file, so sibling-file churn cannot postpone rendering indefinitely. - Register the directory watch before the initial render so a save landing during that render is queued instead of lost (also removes the readiness race in the watch tests). - Treat an opener that spawns but exits nonzero within 2s as a launch failure (xdg-open with no browser handler, macOS open with no association) instead of reporting success on spawn alone. - Document the symlinked-input watch limitation; strengthen the sibling-change test with an mtime assertion and add coverage for the failing-opener path. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (10 files)
Reviewed by hy3:free · Input: 72.3K · Output: 2.5K · Cached: 235.9K |
This was referenced Jul 17, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First of five v0.6 pull requests (Beads epic mdo-bs3, feature mdo-bs3.1). Correctness before presentation: honest --open failures, standards-correct file URLs, rename-resilient watch mode, and Windows CI that actually runs tests.
Changes
Honest browser-launch failures (mdo-bs3.1.1)
mdo --openexits 0 only when render AND launch both succeed; on launch failure the error and the surviving rendered path go to stderr.openwith no association) is now a failure — spawning is not opening.mdo-openwaits on its child and mirrors the exit status instead of always reporting success. CREATE_NO_WINDOW is preserved, so no console flash returns.Standards-correct file URLs (mdo-bs3.1.2)
dir_to_file_urlnow delegates tourl::Url::from_directory_path(already in the dependency tree via ammonia): correct percent-encoding for spaces,#,%,?, Unicode, plus Windows drive letters, UNC, and\\?\prefixes.<base href>instead of emitting a broken one.Rename-resilient watch mode (mdo-bs3.1.3)
Windows CI runs tests (mdo-bs3.1.4)
cargo checktocargo test --all-targets --all-features --locked.Review
🤖 Generated with Claude Code