feat(workflows): TaskExecutorWorkflow stub + wire worker — T19/T20

activities.py — persist_task_instance (new):
  Idempotent INSERT ... ON CONFLICT (id) DO NOTHING on task_instances.
  task_id passed in from workflow (derived from workflow_id via uuid5).
  Registered on task-execution-tq.

workflows.py — TaskExecutorWorkflow (T19):
  Derives stable task_id = uuid5(NAMESPACE_URL, workflow_id).
  Calls persist_task_instance → status=done, returns immediately.
  Real execution logic to replace stub in a later workstream.

worker.py — T20:
  Registers persist_task_instance on task-execution-tq Worker.
  Both queues fully wired: orchestrator-tq and task-execution-tq.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-26 22:30:50 +00:00
parent da7de6ea3b
commit 34aa70cbd9
4 changed files with 75 additions and 6 deletions

View File

@@ -80,11 +80,11 @@ tasks:
state_hub_task_id: fb6b3440-47d2-4b0a-97c1-6e780cc497c4
- id: T19
title: Implement TaskExecutorWorkflow (stub)
status: todo
status: done
state_hub_task_id: 70a7365f-3042-4770-b3cd-3c6724b0790d
- id: T20
title: Wire up worker entrypoint
status: todo
status: done
state_hub_task_id: 1da921f5-86a8-488f-a015-402079194e10
- id: T21
title: Manual end-to-end test