feat: add session-level publish and comment flow

This commit is contained in:
theshy
2026-04-14 16:00:17 +08:00
parent 862db502b0
commit d5d9693581
42 changed files with 2478 additions and 181 deletions

View File

@ -70,6 +70,26 @@ class TaskPoliciesTests(unittest.TestCase):
self.assertEqual(repo.step_updates[-1][1], "publish")
self.assertEqual(repo.task_updates[-1][1], "failed_retryable")
def test_resolve_failure_uses_rate_limit_schedule_for_publish_601(self) -> None:
task = SimpleNamespace(id="task-1", status="running")
steps = [
TaskStep(None, "task-1", "publish", "running", None, None, 0, "2026-01-01T00:00:00+00:00", None),
]
repo = FakePolicyRepo(task, steps)
state = {
"settings": {
"publish": {"retry_schedule_minutes": [15, 5], "rate_limit_retry_schedule_minutes": [30, 60]},
"comment": {},
"paths": {},
}
}
exc = ModuleError(code="PUBLISH_RATE_LIMITED", message="rate limited", retryable=True)
failure = resolve_failure(task, repo, state, exc)
self.assertEqual(failure["payload"]["next_retry_delay_seconds"], 1800)
self.assertEqual(repo.task_updates[-1][1], "failed_retryable")
if __name__ == "__main__":
unittest.main()