Skip to content

Add linux support - #2

Merged
Will-Howard merged 7 commits into
mainfrom
linux-support
Jul 30, 2026
Merged

Add linux support#2
Will-Howard merged 7 commits into
mainfrom
linux-support

Conversation

@Will-Howard

Copy link
Copy Markdown
Owner

When completed, this will add support for Linux alongside the existing MacOS support. This will be a long-standing feature branch, which I will make other PRs against

Will-Howard and others added 2 commits July 28, 2026 14:58
The repo now treats macOS as one implementation rather than the whole
thing, making room for a Linux one beside it. The root Makefile picks
the platform directory by uname and forwards every target, so make,
make install and make test keep working from the root.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A Go module in linux/ with the same make targets as macos/. The binary
just prints "not implemented on Linux yet" and exits 1; the real
behaviour lands incrementally on top. CI now builds and tests both
platforms.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Will-Howard and others added 5 commits July 29, 2026 16:45
* Add a curl-to-sh installer and tag-triggered Linux release

install.sh fetches the static Linux binary for the host arch, verifies it
against the release SHA256SUMS (an unfetchable SHA256SUMS asks for
confirmation and aborts after 30s without input), installs it into the
first writable of /usr/local/bin, ~/.local/bin, ~/bin and starts it from
there. release.yml cross-builds amd64 and arm64 on a v* tag and publishes
both binaries plus SHA256SUMS.

Autostart onboarding no longer cares where the binary lives: the first
daemon start records the wish and enables the unit from any location, and
a unit pointing at a binary other than the running one is rewritten on
start. uninstall stays the one command that forgets everything.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Tighten the user-facing copy per review

settle becomes debounce, 'local only' is cut, the autostart help drops to
two lines, doctor stops naming a key file and matches mac on the unset
SSH_AUTH_SOCK line, and two autostart/start messages lose their tails.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Dump the daemon log and process list when the e2e test fails

CI's TestDaemonEndToEnd timeout discards the daemon log, which is the
one thing that says how far the daemon got.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Reconcile autostart only after every watcher is in place

On a host with a live user bus (the CI runner; not this devbox), the
systemd calls in reconcile take long enough that repo and config changes
made during daemon startup landed before any inotify watch existed, and
with no catch-up commit on start they were missed for good. Watch first,
then reconcile.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@Will-Howard
Will-Howard marked this pull request as ready for review July 30, 2026 11:56
@Will-Howard
Will-Howard merged commit 3625de8 into main Jul 30, 2026
2 checks passed
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