Repository navigation
macOS port, phase 1: core, forge and harness pass on macOS - #1
Merged
Merged
Conversation
…ace check On macos-15 (arm64), pushes to mac-port and workflow_dispatch. A nextest ci profile keeps a JUnit report for the run's artifacts. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ress continue-on-error on the test and check steps (no failure email per push), and a step summary listing the failed tests or the first compile errors. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…pen with open mac_detect.rs: launchers on PATH, else inside their bundles (VS Code, Cursor, VSCodium, Sublime Text, Zed), JetBrains IDEs through the Toolbox scripts, PATH or any bundle holding their launcher, editors without one (BBEdit, Nova, TextMate, TextEdit) through open -a, and Finder (open, open -R to show a file). URLs open with /usr/bin/open through the child-env hook. The Open With chooser and the folder picker stay None on macOS (phase 2). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ame the macOS version An app started from the Dock gets launchd's bare PATH; the capture fixes that, with $SHELL or else the account's own shell. A real-shell capture test checks the system's env -0 (BSD's on macOS); the session-id test reads /proc, so it's Linux only. Diagnostics read SystemVersion.plist. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…am per call) notify's FsEventWatcher stops and recreates its stream, with every path, on each watch and unwatch; paths_mut batches them. inotify's batch is the same calls one by one. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The reader closes stdout once it has enough; on macOS git often exits on SIGPIPE before the select runs, and the biased select took that exit as a failure (status -1). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
No /proc there: lsof finds a process with the lock open, or a git process whose cwd is in the repository. The test waits for its holder through a marker file instead of /proc. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- sed -i.orig (GNU and BSD), touch -t, true from PATH, and a parent's command line from /proc or ps; - the video cache path compared canonically (/var is /private/var); - the editor-template read sample uses git, which every test machine has (code may be missing); - non-UTF-8 file names gated off macOS (APFS refuses them), as on Windows; - a request forwarded before the first instance serves isn't checked on macOS: its peer credentials go with the peer there; - the runtime dir leaves room for the instance socket's path (104 bytes on macOS). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…acos), failures fail Drops the push trigger and continue-on-error; the step summaries stay. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
~/Library/Application Support/GitBolt and ~/Library/Caches/GitBolt, as macOS names apps' folders; gitbolt elsewhere, as before (paths::APP_DIR). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gd8cWxFv1V5tj9RPxWsZNr
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gd8cWxFv1V5tj9RPxWsZNr
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.
macOS port, phase 1: the core, forge and harness build and pass their tests on macOS (Apple Silicon,
macos-15), andcargo check --workspace --all-targetscompiles there, gitbolt-app included. Linux and Windows behave as before.Proof
macoslabel, no continue-on-error): 37726507007. 2114 tests passed, 0 failed (5#[ignore]not run); the workspace check passed, gitbolt-app included.continue-on-erroron the test and check steps so a failing push didn't send an email. The proof run above doesn't.The workflow (
.github/workflows/mac-port.yml)workflow_dispatch, orpull_requesttypes: [labeled]gated on the labelmacos(each time it's added). It doesn't run on pushes, on main, or on ordinary PR events.macos-15:cargo nextest run --profile ci -p gitbolt-core -p gitbolt-forge -p gitbolt-harness(JUnit report uploaded), andcargo check --workspace --all-targets(log uploaded). Each writes a failure summary to the run's step summary.Core changes
openers/mac_detect.rs):PATH, else inside their app bundles: VS Code, Cursor, VSCodium, Sublime Text, Zed;PATH, then any.appthat holds their launcher;open -a;open, andopen -Rto reveal a file./usr/bin/open, through the child-env hook.PATH). The shell is$SHELL, else the account's own.paths_mut. Without that, FSEvents recreated its stream, with every path, on each watch/unwatch call. On inotify the batch is the same calls made one by one.lsof(no/procthere).Tests
sed -i.orig,touch -t,truefromPATH;/procorps;/varis/private/var);git(codemay not be installed)./proc:git::a_detached_command_has_its_own_session…andshellenv::the_capture_shell_leads_its_own_session;instance::a_request_sent_before_the_first_instance_serves…. On macOS the peer credentials go away with the peer, so the user check refuses a request whose sender gave up before the first instance served. The delivery half of the simultaneous-launch test is skipped for the same reason./bin/shenv capture;Phase 2 (not in this PR)
.appbundle and its helper apps, the sandbox, and packaging as a.dmgwith ad-hoc signing.Noneon macOS for now).🤖 Generated with Claude Code
https://claude.ai/code/session_01Gd8cWxFv1V5tj9RPxWsZNr