From 8fa2cc266cf2670a6dbf85f9f4d11a0ac236a652 Mon Sep 17 00:00:00 2001 From: Gros Frumos Date: Tue, 17 Mar 2026 16:36:52 +0200 Subject: [PATCH] kin: auto-commit after pipeline --- agents/runner.py | 5 ++--- scripts/start-api.sh | 4 ++++ web/api.py | 5 +++++ 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100755 scripts/start-api.sh diff --git a/agents/runner.py b/agents/runner.py index 4df79a4..6876a40 100644 --- a/agents/runner.py +++ b/agents/runner.py @@ -3,6 +3,7 @@ Kin agent runner — launches Claude Code as subprocess with role-specific conte Each agent = separate process with isolated context. """ +import errno as _errno import json import logging import os @@ -1175,7 +1176,6 @@ def _execute_department_head_step( # Watchdog helpers # --------------------------------------------------------------------------- -import errno as _errno def _check_parent_alive( @@ -1266,8 +1266,7 @@ def run_pipeline( department=department, ) # Save PID so watchdog can detect dead subprocesses (KIN-099) - models.update_pipeline(conn, pipeline["id"], pid=os.getpid()) - pipeline["pid"] = os.getpid() + pipeline = models.update_pipeline(conn, pipeline["id"], pid=os.getpid()) models.update_task(conn, task_id, status="in_progress") results = [] diff --git a/scripts/start-api.sh b/scripts/start-api.sh new file mode 100755 index 0000000..a6a9b4c --- /dev/null +++ b/scripts/start-api.sh @@ -0,0 +1,4 @@ +#!/bin/bash +sock=$(ls /private/tmp/com.apple.launchd.*/Listeners 2>/dev/null | head -1) +[ -n "$sock" ] && export SSH_AUTH_SOCK="$sock" +exec /opt/homebrew/bin/python3.11 -m uvicorn web.api:app --host 0.0.0.0 --port 8420 diff --git a/web/api.py b/web/api.py index 4ee3e8c..689d832 100644 --- a/web/api.py +++ b/web/api.py @@ -3,6 +3,7 @@ Kin Web API — FastAPI backend reading ~/.kin/kin.db via core.models. Run: uvicorn web.api:app --reload --port 8420 """ +import glob as _glob import logging import mimetypes import shutil @@ -114,6 +115,10 @@ def _launch_pipeline_subprocess(task_id: str) -> None: cmd = [sys.executable, "-m", "cli.main", "--db", str(DB_PATH), "run", task_id] cmd.append("--allow-write") env = os.environ.copy() + if 'SSH_AUTH_SOCK' not in env: + _socks = _glob.glob('/private/tmp/com.apple.launchd.*/Listeners') + if _socks: + env['SSH_AUTH_SOCK'] = _socks[0] env["KIN_NONINTERACTIVE"] = "1" try: proc = subprocess.Popen(