v0.46.27.0
The autopilot daemon can no longer lose your API keys silently. The
failure mode: autopilot --install generated a wrapper that loaded env only
from interactive shell rc files, which daemon supervisors (launchd, systemd,
cron) never run — so the daemon started green while every LLM phase
(chronicle, dream, enrich) quietly produced nothing, for days, with no error
anywhere. This release adopts the env-file fix from PR #4443 (thank you
@Masashi-Ono0611) and hardens the whole lane. Closes #2608.
Added
- The daemon wrapper now sources a gbrain-owned
~/.gbrain/envfile (after
your shell profiles, so it wins on conflicts; honorsGBRAIN_HOME).
autopilot --installcreates it as a fully-commented, owner-only (0600)
template — API keys plus the process-level env only a wrapper can deliver
(NODE_EXTRA_CA_CERTS, proxy vars, custom base URLs). gbrain never
overwrites or deletes it; a pre-existing group/world-readable file gets one
warning and is left untouched. - Autopilot prints one loud line at boot when no chat provider is available,
naming both remediation paths and the reload step — the silent no-op is now
visible inautopilot.logat startup instead of surfacing as "runs green,
extracts nothing."
Fixed
autopilot --installnow actually reloads a running daemon: launchd
unloads before loading (a barelaunchctl loadover a loaded agent also
errored and aborted every reinstall), systemd restarts an already-active
unit, and the cron/container paths tell you when a running loop keeps its
old environment and exactly how to end it.- Env files with plain
KEY=valuelines (noexport) now reach the daemon —
the wrapper sources underset -a, matching how dedicated env files are
usually written.
To take advantage of v0.46.27.0:
- Existing daemon installs: re-run
gbrain autopilot --installonce. The
upgrade alone swaps the binary but does not regenerate the wrapper, so the
env-file sourcing (and the template) only appear after a reinstall — which
now also reloads the daemon for you on launchd and systemd. - Then put your keys in
~/.gbrain/env(or keep them in
~/.gbrain/config.json); the wrapper sources the env file on every daemon
start.