Skip to content

Defer busy CurrentSession reminders - #1987

Draft
Aaronontheweb wants to merge 1 commit into
netclaw-dev:devfrom
Aaronontheweb:fix/defer-busy-current-session-reminders
Draft

Defer busy CurrentSession reminders#1987
Aaronontheweb wants to merge 1 commit into
netclaw-dev:devfrom
Aaronontheweb:fix/defer-busy-current-session-reminders

Conversation

@Aaronontheweb

Copy link
Copy Markdown
Collaborator

Summary

  • Defer CurrentSession reminders when the target session cannot admit a distinct turn.
  • Use Akka.Reminders NackAsync for durable backoff and attempt limits.
  • Treat a missing supported gateway as a transient condition.
  • Record one Netclaw failure only when scheduler retries end.
  • Apply the same contract to Slack, Discord, Mattermost, SignalR, and TUI sessions.

Message contract

The session binding returns CommandDeferred before queue admission.

The execution actor maps this response to ReminderExecutionDeferred.

The reminder manager maps the internal message to NackAsync.

  • RetryScheduled does not change Netclaw history or failure counts.
  • Failed and Expired record one terminal failure.

Validation

  • dotnet restore Netclaw.slnx
  • dotnet build Netclaw.slnx --no-restore
  • 214 affected actor tests passed.
  • 1 SignalR session actor test passed.
  • dotnet slopwatch analyze passed with one existing warning outside this change.
  • pwsh ./scripts/Add-FileHeaders.ps1 -Verify
  • openspec validate defer-busy-current-session-reminders

The evaluation suite did not run because the environment lacks the required provider variables.

Fixes #1980

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.

CurrentSession (Mode B) reminders silently burn the 1h execution budget when the target session is mid-turn

1 participant