Commit 5eb1b579a624d18f01e929af309915bd8f5a3a64
1 parent
2a3b248d
graphlemon: sdd artifact for task 911861fe-446a-4bab-8b69-b4872b92d616
Showing
1 changed file
with
7 additions
and
0 deletions
.graphlemon/runs/911861fe-446a-4bab-8b69-b4872b92d616/sdd.md
0 → 100644
| 1 | +The graphlemon Work Node (planner) workflow completed. It produced an SDD for the goal "修复 supervisor/deploy_stage.py 并发部署冲突缺少互斥锁的问题": | |
| 2 | + | |
| 3 | +- Problem: stage_deployment() only checks the last finalized deployment, not whether one is currently in-flight, so concurrent self-target deploys can race. | |
| 4 | +- Fix design: catch the sqlite3.IntegrityError from the existing ux_deployment_active partial unique index and translate it into a new named ConcurrentDeploymentError (carrying git_commit_hash, blocking_deployment_id, blocking_status) instead of letting the raw sqlite error leak out. | |
| 5 | +- Scope: only supervisor/deploy_stage.py (new exception class + one try/except) and supervisor/test_deploy_stage.py (tighten one existing test, add two regression tests for the rolled_back / blocked_pending_human terminal-state pass-through paths). No schema change, no new dependency, no app-level locking. | |
| 6 | + | |
| 7 | +git status in this worktree remains clean — the planner returned the SDD as its structured result rather than writing/committing it itself, consistent with graphlemon's artifact-commit flow happening at the orchestration layer. No further action taken; let me know if you want the full SDD text or want to proceed to the Coder step. | |
| 0 | 8 | \ No newline at end of file | ... | ... |