InstallModelSync.ts has no Linux branch, so InstallAll exits non-zero on every Linux install
I maintainer di solito rispondono entro 7 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- bun, linux, typescript
Direzione di ricerca
Start with LIFEOS/TOOLS/InstallModelSync.ts:53 and compare its platform handling with LIFEOS/TOOLS/InstallWorkSweep.ts, which the issue says already writes systemd user units on Linux. Then inspect LIFEOS/TOOLS/InstallAll.ts and LIFEOS/TOOLS/Services.ts to trace the Linux core service targets and the launchd-only services. Reproduce on Linux with the listed InstallAll command; done means core services install successfully and macOS-only targets do not make Linux installation fail.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Version
LifeOS 8.761.0 · attestation: 1 system file(s) differ from danielmiessler/[email protected]:
- LIFEOS/DOCUMENTATION/ARCHITECTURE_SUMMARY.md
What is broken
On Linux, com.lifeos.modelsync is a core service (optIn: false in LIFEOS/TOOLS/Services.ts), and the Setup consent text says Linux starts "the ones with a systemd unit". But InstallModelSync.ts has no Linux branch. It writes a launchd plist under ~/Library/LaunchAgents/ and then spawns launchctl, which throws ENOENT. So Services.ts install --yes reports "1 service install(s) FAILED", and InstallAll.ts --yes exits non-zero on every Linux install. That breaks its contract that it exits 0 when every core service is loaded. It also leaves a stray plist in ~/Library on a Linux home. Related: com.lifeos.pulse-menubar and com.lifeos.deriver are launchd-only by design (per the Services.ts header comment). They are still in InstallAll's core target list on Linux: the menu-bar build fails on a missing swiftc, and the deriver prints ✅ but writes no unit. Sibling installers such as InstallWorkSweep.ts already write a systemd --user unit pair on Linux, so modelsync could follow that pattern, and the macOS-only services could be filtered out of the Linux core targets.
Where (file:line)
LIFEOS/TOOLS/InstallModelSync.ts:53
Repro on a clean tree
1. On Ubuntu with systemd --user (lingering on, XDG_RUNTIME_DIR set), run `bun <skill>/Tools/InstallAll.ts --yes --json --components statusline,tooltips,spinnerverbs,agents,commands,workflows,worksweep,derivedsync`.
2. Every step through Migrate is ok; CoreServices fails: pulse-menubar (swiftc not found), modelsync (exit 1).
3. Run `bun LIFEOS/TOOLS/InstallModelSync.ts` directly: `error: Executable not found in $PATH: "launchctl"`.
Negative control
Probe: bun LIFEOS/TOOLS/InstallModelSync.ts · exit 1 · captured 2026-11-07T03:52:50.750Z
Red looks like: Executable not found in $PATH: "launchctl"
18 | const LABEL = "com.lifeos.modelsync";
19 | const TEMPLATE = lifeosPath("TOOLS", `${LABEL}.plist.template`);
20 | const TARGET = join(HOME, "Library", "LaunchAgents", `${LABEL}.plist`);
21 |
22 | async function sh(cmd: string[]): Promise<{ exit: number; out: string }> {
23 | const proc = Bun.spawn(cmd, { stdout: "pipe", stderr: "pipe" });
^
error: Executable not found in $PATH: "launchctl"
path: "launchctl",
errno: -2,
code: "ENOENT"
at sh (~/.claude/LIFEOS/TOOLS/InstallModelSync.ts:23:20)
at ~/.claude/LIFEOS/TOOLS/InstallModelSync.ts:54:7
Bun v1.4.4 (Linux x64)
Suggested fix
None proposed.
Environment
- OS: Ubuntu 26.04.1 LTS (x64)
- Harness: claude-code
- bun: 1.4.4 · git: 2.53.0
- Doctor broken: codex, cloudflare
- Lingua principale
- TypeScript
- Stelle
- 19.7k
- Fork
- 2.5k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di danielmiessler/LifeOS
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
danielmiessler/LifeOS#2639 ·
I maintainer di solito rispondono entro 7 giorni
-
MergeSettings: nested __merge annotations under a user-only key are written raw into settings.jsonAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
danielmiessler/LifeOS#2636 ·
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
danielmiessler/LifeOS#2635 ·
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
danielmiessler/LifeOS#2625 ·
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
danielmiessler/LifeOS#2645 ·
I maintainer di solito rispondono entro 7 giorni
Tutte le issue di danielmiessler/LifeOS
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
pending close triaging
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
anomalyco/opencode#62582 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
feature request
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
callstack/react-native-paper#5189 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
live-codes/livecodes#1079 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Add: ESP 2 ROApertaapproved check:passed streams:add
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno