Skip to content

Scheduled tasks: last run result, failed runs with retry, and limits (#354 follow-up) #473

Open

Description

@Birfy

Follow-up to #354 (its first slice, Edit + Pause/Resume + documented missed runs, is in the PR that Fixes #354). This issue holds the rest of #354's scope, which the Owner decision of 2026-10-20 left for later.

Expected behavior

Scope / open questions for the owner

  • What counts as a failed run: DSH could not deliver the reminder, the Bot's turn errored, or the turn ended without an answer?
  • Retry: run the same prompt now (an extra run) or re-deliver the missed one?
  • The limit values ([Team] Bound agent loops and resource consumption #56) and whether they apply per Bot or per person.

Depends on #353 and #349 landing first. Needs the owner's decisions above before agent-ready.

Activity

  1. added
    enhancementNew feature or request
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    area:automationScheduled tasks and automation
    on Oct 20, 2026
  2. Birfy commented on Oct 20, 2026

    @Birfy
    CollaboratorAuthor

    Maintenance triage (2026-10-20 09:56 Asia/Shanghai, main 465357e): still needs-human; depends on #353/#349 (PRs #470/#472). Proposed answers for the owner to confirm:

    • (a) Recommended: a run counts as failed when DSH could not deliver it or the Bot's turn errored (a turn that ends without an answer is not a failure). Each task row shows last run time + result + reason; Retry runs the same prompt once now (an extra run, no backfill of missed runs); failures also appear in notifications/Agent inbox. Limits ([Team] Bound agent loops and resource consumption #56) stay out of this step.
    • (b) Same as (a) but include limits now (e.g. max 20 tasks per person, smallest interval 5 min).
      agent-ready only after the owner's answer.
  3. Birfy commented on Oct 20, 2026

    @Birfy
    CollaboratorAuthor

    Owner decision (2026-10-20): option (a) as recommended — a run fails only when DSH delivery fails or the Bot turn errors (a finished turn with no answer is not a failure). Each task row shows last run time, result and reason; Retry re-runs now with the same prompt (no backfill of missed runs); failures also surface in notifications and the Agent inbox. Limits (#56) not in this step.

  4. added
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    and removed
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    on Oct 20, 2026
  5. added
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Oct 20, 2026
  6. self-assigned this
    on Oct 20, 2026
  7. Birfy commented on Oct 20, 2026

    @Birfy
    CollaboratorAuthor

    Claimed by maintenance run (2026-10-20 11:55 Asia/Shanghai, main a7adfe0): developing on branch feat/473-schedule-last-run-retry in Birfy/FlyBot, following the Owner decision above (first slice only).

  8. Birfy commented on Oct 20, 2026

    @Birfy
    CollaboratorAuthor

    Minor decisions for #473 (decided by the maintenance worker under the owner's delegation, 2026-10-20 12:08 Asia/Shanghai), PR #494:

    • Not delivered = the task is still due 2 minutes after FlyBot first saw it due while the app runs (seen due once is not enough: right after a start DSH is still delivering times it missed while closed). Checked every minute and on each Scheduled tasks read; told once per missed time.
    • Results shown: Running since / Last run / Last run · Stopped / Last run · Failed: reason. A user-stopped turn is "Stopped", not a failure. A run whose turn was still going at a restart shows as a plain "Last run". A reminder DSH delivered that the Bot has not taken up yet shows as "Last run" at DSH's delivery time.
    • Retry appears only on a failed run of a task that is not paused (a paused task is refused: "Resume the task first"). It goes to the Bot's current part, or the group's Session, framed exactly like DSH's own reminder so the run is recorded on the same row and the connector verdict stays the scheduled one. DSH's next time is untouched; if DSH itself delivers a stuck time later (after a restart or a task change), that is DSH's missed-run rule.
    • Group task: fails when a member's turn in that round failed (reason names them).
    • Agent inbox: failures go into the same ended-turn list Proactive reminders 1/3: event reminders (approval waiting, failed, finished) in app and desktop #353's notifications read; Agent inbox phase 2: board view, tool-call counts, failed turns and team views (after #349) #471 (in progress) turns failed entries of that list into inbox cards, so this PR adds no inbox code of its own.
    • Last-run records keep the newest 200 tasks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a templateagent-workingAn agent has claimed this issue (the claim comment names the branch)area:automationScheduled tasks and automationenhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions