fix(conduit): schedule capture + insight via Pulse cron so Conduit works on Linux - #1650
Open
elhoim wants to merge 1 commit into
Open
fix(conduit): schedule capture + insight via Pulse cron so Conduit works on Linux#1650elhoim wants to merge 1 commit into
elhoim wants to merge 1 commit into
Conversation
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.
Problem
Conduit's two scheduled jobs — the 120 s capture poll and the hourly insight read — are installed only via macOS
launchd(Conduit/InstallConduit.tsandInstallConduitInsight.ts, which write to~/Library/LaunchAgentsand calllaunchctl). On Linux there is no launchd, so neither job ever runs: nothing is captured, the hourlyBuildInsight.tsnever fires, and the Pulse /conduit page stays permanently empty. There was no non-macOS install path.Fix
Schedule Conduit through Pulse's own cron heartbeat loop instead of an OS-level daemon. Pulse already runs a cross-platform cron scheduler (
matchesCron/isDueinpulse.ts), active on every platform Pulse runs on. Moving Conduit's two jobs there makes them work on Linux and macOS alike, with no launchd/systemd dependency:Jobs run with
cwd = PULSE/, so the relativeConduit/…commands resolve, and Pulse's missing-script preflight already disables them cleanly on an install where the scripts aren't present.Why the insight job is safe under Pulse's minimal PATH
BuildInsight.tsuses the cheapest inference rung (haiku viaTOOLS/Inference.ts), which resolves theclaudebinary explicitly (Bun.which("claude")→~/.local/bin/claudefallback). That's the same minimal-PATH problem the launchd insight installer solved by baking a PATH into the plist — so it's a non-issue here.Verified on Linux (headless)
conduit-captureon load →captured 1 event(s), dispatched to log.BuildInsight.tsread the real events and wrote a content-type read (Development 100%with a narrative) — vs. the empty[]before.Scope / compatibility
PULSE.toml. No code changes.