feat(toolchain): flag + WorkSession toolchain columns + migration

ROBOCO_TOOLCHAIN_MATCH_ENABLED (default-off) gates the whole subsystem.
Adds work_sessions.toolchain_python / toolchain_status (nullable VARCHAR(20))
recording the interpreter the workspace was provisioned with and whether the
target's suite can be executed (ok | broken | unknown). Migration 042 verified
with a real upgrade head + downgrade -1 + re-upgrade on a throwaway Postgres.
This commit is contained in:
Renn F
2026-06-22 01:31:45 +02:00
parent 9274cd4584
commit 6df083c594
6 changed files with 105 additions and 0 deletions
+16
View File
@@ -175,6 +175,22 @@ class Settings(BaseSettings):
description="Base URL for Ollama native API (embeddings, model mgmt)",
)
# ==========================================================================
# Agent runtime toolchain matching (default-off)
# ==========================================================================
# When enabled, an agent's workspace is provisioned with the Python the
# TARGET project declares (uv resolves requires-python), and a delivery role
# that cannot execute the suite blocks instead of passing on a source read.
# When off, provisioning behaves exactly as today (system interpreter).
toolchain_match_enabled: bool = Field(
default=False,
description=(
"Provision the agent workspace with the target project's Python "
"(uv resolves requires-python) and block delivery gates when the "
"suite cannot be executed. Off => today's behavior."
),
)
# ==========================================================================
# Web Research (pluggable external search/fetch for Board + PM roles)
# ==========================================================================