The queue: parking, the operator's order, blocked items (M2.2)
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 3m26s
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 3m26s
Several work items on the new loop (L1, D4): - Switching parks the item on the workspace: its work is committed and its branch pushed; resuming checks the item's branch back out. Branches of open items are never set aside by a fresh workspace. - Next item: the operator's "do #N next" first, otherwise the oldest. - Issues with open Gitea dependencies are blocked until they close, checked at intake and on every round; status shows blocked items and the line. Tests: queue unit tests, the property walk over several issues with dependencies and a new parked_work_safe property (it catches parking disabled), and an end-to-end test with two issues where B depends on A. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
This commit is contained in:
1 parent
d504588a57
commit
cceb30c729
11 files changed
+657
-85
No files matched your search
@@ -48,6 +48,10 @@ class FakeGitea:
|
||||
self.assigner = assigner
|
||||
self.comments: list[tuple[int, str]] = []
|
||||
self.closed: list[int] = []
|
||||
self.deps: dict[int, list[int]] = {}
|
||||
|
||||
def open_dependencies(self, repo: str, index: int) -> list[str]:
|
||||
return [f"{repo}#{n}" for n in self.deps.get(index, []) if n not in self.closed]
|
||||
|
||||
def assigned_issues(self, repo: str, assignee: str) -> list[Issue]:
|
||||
return [i for i in self.issues if i.number not in self.closed]
|
||||
|
||||
Reference in new issue
Block a user