daemon: use CLAUDE_CONFIG_DIR for OAuth credential separation, fix shutdown
Replace agent_api_key (which didn't work — claude CLI uses OAuth, not API keys) with agent_config_dir. When configured, sets CLAUDE_CONFIG_DIR on claude subprocesses so daemon agent work authenticates with separate OAuth credentials from the interactive session. Fix daemon not shutting down on SIGTERM: use process::exit(0) after cleanup so PR_SET_PDEATHSIG kills child claude processes immediately. Previously the daemon hung waiting for choir threads/subprocesses to finish. Restart now takes ~20ms instead of timing out. Also: main.rs now uses `use poc_memory::*` since lib.rs exists.
This commit is contained in:
parent
2f3ac1ecb6
commit
e33fd4ffbc
4 changed files with 15 additions and 40 deletions
|
|
@ -487,18 +487,14 @@ pub fn run_daemon() -> Result<(), String> {
|
|||
log_event("daemon", "stopping", "");
|
||||
eprintln!("Shutting down...");
|
||||
|
||||
// Cancel all tasks
|
||||
for info in choir_main.task_statuses() {
|
||||
if !info.status.is_finished() {
|
||||
log_event(&info.name, "cancelling", "");
|
||||
}
|
||||
}
|
||||
|
||||
// Clean up socket
|
||||
let _ = fs::remove_file(status_sock_path());
|
||||
|
||||
log_event("daemon", "stopped", "");
|
||||
Ok(())
|
||||
|
||||
// Exit immediately — PR_SET_PDEATHSIG on child processes ensures
|
||||
// claude subprocesses get SIGTERM when we die.
|
||||
std::process::exit(0)
|
||||
}
|
||||
|
||||
fn read_status_socket() -> Option<DaemonStatus> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue