Wire delegate_task to DistributedWorker for actual execution #985

Closed
opened 2026-03-22 19:10:54 +00:00 by perplexity · 16 comments
Collaborator

Parent

  • #982 — Session Crystallization & Operational Playbook

Background

The delegate_task function was neutered during Operation Darling Purge — it currently only records intent but does not execute. Must wire to brain/worker.py DistributedWorker.

Objective

Make task delegation actually execute delegated work.

Scope

  • Audit current delegate_task implementation — identify where execution was disabled
  • Wire to brain/worker.py DistributedWorker for actual task execution
  • Implement task lifecycle: queued → running → completed/failed
  • Add delegation to Kimi via kimi-ready label on Gitea issues
  • Add delegation to Paperclip tasks

Key Design Notes

  • This is the bridge between Timmy's intent and actual work getting done
  • Combined with MCP restoration, enables Timmy to orchestrate multi-agent workflows
  • Must handle failure gracefully (retry, escalate, report)
  • #978 — Integrate ResearchOrchestrator with Paperclip task runner
  • #979 — Kimi delegation for heavy research
## Parent - #982 — Session Crystallization & Operational Playbook ## Background The `delegate_task` function was neutered during Operation Darling Purge — it currently only records intent but does not execute. Must wire to `brain/worker.py` DistributedWorker. ## Objective Make task delegation actually execute delegated work. ## Scope - Audit current `delegate_task` implementation — identify where execution was disabled - Wire to `brain/worker.py` `DistributedWorker` for actual task execution - Implement task lifecycle: queued → running → completed/failed - Add delegation to Kimi via `kimi-ready` label on Gitea issues - Add delegation to Paperclip tasks ## Key Design Notes - This is the bridge between Timmy's intent and actual work getting done - Combined with MCP restoration, enables Timmy to orchestrate multi-agent workflows - Must handle failure gracefully (retry, escalate, report) ## Related - #978 — Integrate ResearchOrchestrator with Paperclip task runner - #979 — Kimi delegation for heavy research
claude was assigned by Rockachopa 2026-03-22 23:30:26 +00:00
claude added the harnessmemory-sessionp0-critical labels 2026-03-23 13:53:07 +00:00
Timmy added the claude-ready label 2026-03-23 23:19:14 +00:00
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Owner

🤖 Vassal dispatch → routed to Claude

Priority score: 70
Rationale: high-complexity keywords detected
Label: claude-ready

🤖 **Vassal dispatch** → routed to **Claude** Priority score: 70 Rationale: high-complexity keywords detected Label: `claude-ready`
Collaborator

PR created: http://143.198.27.163:3000/Rockachopa/Timmy-time-dashboard/pulls/1273

Summary of changes:

  • Created src/brain/__init__.py and src/brain/worker.py with DistributedWorker
  • DistributedWorker.submit() queues tasks, starts a daemon thread, returns a real task_id
  • Three execution backends: agentic_loop (default), kimi (Gitea kimi-ready issues for heavy research), paperclip (Paperclip API)
  • Task lifecycle: queued → running → completed | failed with auto-retry (MAX_RETRIES=2)
  • delegate_task now calls DistributedWorker.submit() — tasks get real IDs and actually execute
  • Added brain to pyproject.toml package list
  • 32 new unit tests; all 435 existing tests pass; lint clean
PR created: http://143.198.27.163:3000/Rockachopa/Timmy-time-dashboard/pulls/1273 **Summary of changes:** - Created `src/brain/__init__.py` and `src/brain/worker.py` with `DistributedWorker` - `DistributedWorker.submit()` queues tasks, starts a daemon thread, returns a real `task_id` - Three execution backends: `agentic_loop` (default), `kimi` (Gitea kimi-ready issues for heavy research), `paperclip` (Paperclip API) - Task lifecycle: queued → running → completed | failed with auto-retry (MAX_RETRIES=2) - `delegate_task` now calls `DistributedWorker.submit()` — tasks get real IDs and actually execute - Added `brain` to `pyproject.toml` package list - 32 new unit tests; all 435 existing tests pass; lint clean
Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#985