kin: auto-commit after pipeline

This commit is contained in:
Gros Frumos 2026-03-17 18:29:32 +02:00
parent 94591ab7ae
commit 3d9b5766ab
10 changed files with 250 additions and 30 deletions

View file

@ -1252,6 +1252,9 @@ def run_pipeline(
initial_previous_output: str | None = None,
parent_pipeline_id: int | None = None,
department: str | None = None,
pm_result: dict | None = None,
pm_started_at: str | None = None,
pm_ended_at: str | None = None,
) -> dict:
"""Execute a multi-step pipeline of agents.
@ -1312,6 +1315,39 @@ def run_pipeline(
)
except Exception:
pass
# KIN-OBS-025: log PM step retrospectively (after create_pipeline FK is satisfied)
# Only for top-level pipelines — sub-pipelines have no PM step.
if pm_result is not None and not parent_pipeline_id:
try:
models.write_log(
conn, pipeline["id"],
"PM start: task planning",
level="INFO",
ts=pm_started_at,
extra={"role": "pm"},
)
except Exception:
pass
try:
_n_steps = len(steps)
_success = pm_result.get("success")
_cost = pm_result.get("cost_usd") or 0.0
_tokens = pm_result.get("tokens_used") or 0
models.write_log(
conn, pipeline["id"],
f"PM done: {_n_steps} steps planned, success={_success}, cost=${_cost:.4f}, tokens={_tokens}",
level="INFO",
ts=pm_ended_at,
extra={
"role": "pm",
"steps_count": _n_steps,
"success": _success,
"cost_usd": _cost,
"tokens_used": _tokens,
},
)
except Exception:
pass
results = []
total_cost = 0.0