Local-server mode + macOS support (auto-detected) — builds on #28#31
Open
kylecarbonneau wants to merge 1 commit into
Open
Local-server mode + macOS support (auto-detected) — builds on #28#31kylecarbonneau wants to merge 1 commit into
kylecarbonneau wants to merge 1 commit into
Conversation
PR taskyou#28 assumes a remote Linux server reached over SSH. These additive changes let the GM run on the same machine as the TaskYou daemon (including macOS) with zero change to the existing remote-Linux flow: - channel: runRemote() gains a LOCAL branch (bash -lc, no SSH) when SERVER_HOST is local/localhost/empty; the SSH path is unchanged. - setup.sh: OS-detect the hooks dir to match ty's os.UserConfigDir() (Linux ~/.config/task/hooks vs macOS ~/Library/Application Support/ task/hooks). The hardcoded ~/.config path silently misfired on macOS. - setup.sh: a local-server provisioning path that skips SSH/systemd when the daemon runs on this same box; remote-Linux/systemd intact. - config.example.env: document SERVER_HOST=local. Both paths are auto-detected; no existing behavior is removed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Builds on #28 (
feat/channels-integration) — this PR is stacked on that branch, so the diff here is just these additions (3 files, +148/−13). Happy to fold them in as commits on #28 directly instead if you'd prefer; once #28 lands onmainI'll retarget this tomain.Summary
#28 adds the push-based task-event channel, built for a remote Linux server reached over SSH. This makes the same channel also work when the GM runs on the same machine as the daemon — including macOS — auto-detected, with the remote-Linux/SSH flow left fully intact. Everything is additive; nothing existing is removed.
What changed
1. Channel local mode
templates/channel/taskyou-channel.ts.tmpl—runRemote()gains aLOCALbranch: whenSERVER_HOSTislocal/localhost/ empty (IS_LOCAL), commands run viabash -lcdirectly on this machine (no SSH). Otherwise the original SSH path runs unchanged.~/.local/binis prepended toPATHand wecdintoSERVER_HOME, mirroring the remote path.2. Cross-platform hooks directory
setup.sh— the hooks dir was hardcoded to~/.config/task/hooks, butty'shooks.DefaultHooksDir()follows Go'sos.UserConfigDir():~/.config/task/hooks~/Library/Application Support/task/hooksA
resolve_hooks_dirhelper detects the OS viauname -sand picks the right path. Linux installs are byte-identical; macOS installs now land where the daemon actually looks (previously, hooks placed in~/.configon a Mac silently never fired).3. Local-server setup mode
setup.sh—setup_server()detects a local server (SERVER_HOSTlocal/localhost/empty) and delegates to a newsetup_server_local()that configures git identity, registers project repos withtylocally, installs hooks to the OS-correct dir, createsnotifications.jsonl, and skips SSH provisioning + the systemd service (GM and daemon share the box). The remote-Linux (setup_server) and exe.dev (setup_exe_dev) paths are untouched aside from adopting the OS-aware hooks dir.Plus
config.example.envdocumentsSERVER_HOST=local.Testing (macOS)
bun buildbundles cleanly andtsc --noEmit --strictis clean; the repo's ownsmoke-test.tspasses against the local render.bash -lcrunner drivestycommands without SSH.~/Library/Application Support/task/hooksand fire on task events.elsebranches only — near-zero deletions).Compatibility
Fully backward-compatible. Existing remote-Linux deployments behave exactly as before; the new behavior only engages when
SERVER_HOSTis local/localhost/empty or the target OS is macOS.