Skip to content

fix: preserve task board interventions - #25

Merged
zhanghanduo merged 1 commit into
mainfrom
codex/fix-task-board-intervention
Aug 31, 2026
Merged

zhanghanduo merged 1 commit into
mainfrom
codex/fix-task-board-intervention

Conversation

@zhanghanduo

Copy link
Copy Markdown
Collaborator

Summary

  • mark TaskBoardObserver critical so notify_observers awaits it and collects its Intervention
  • add dispatcher-level regression coverage for the observer contract
  • add a real run_agent_loop end-to-end test proving the task-board reminder reaches the next LLM request
  • audit production observers for other non-critical hooks returning control values; no additional cases found

Root cause

Non-critical observer hooks are dispatched as fire-and-forget tasks and their return values are intentionally ignored. TaskBoardObserver returned Intervention(inject_messages=...) while declaring critical=False, so the reminder was silently dropped.

Validation

  • uv run --extra dev ruff check frontier_agent/components/observers/task_board.py tests/test_task_board_intervention.py
  • uv run --extra dev pytest -q
  • 1706 passed, 4 skipped

@zhanghanduo
zhanghanduo merged commit ce4dd2d into main Aug 31, 2026
5 checks passed
@zhanghanduo
zhanghanduo deleted the codex/fix-task-board-intervention branch August 31, 2026 02:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants