You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c8ef18d
Browse filesBrowse the repository at this point in the historyBrowse files
fix(desktop): inbox persistence order, desktop-only overdue sweep, and ungated pickup windows (#8685)
* fix(desktop): scope the overdue sweep to desktop calls and keep ungated pickup windows
- The overdue listing and the per-call deadline read only consider desktop
tool calls, and the settlement checks the call is one the desktop runs, so
a bound run's workflow call or Sim-files VFS read is never failed with the
desktop's not-started result.
- The cron scans only runs inside the inbox's horizon, oldest calls first,
within its batch limit.
- Recording a decision clears the pickup deadline only for a call that was
gated; a call that was never gated keeps the window it was offered with.
* fix(desktop): limit the overdue sweep over desktop calls only, and bound it by deadline
The sweep's tool-name filter admitted read, grep and glob calls on Sim's own
files, which the settlement then skipped, so enough of them could fill every
batch and starve real desktop calls. Queries now use the SQL form of
isDesktopToolCall (a desktop tool by name, or a VFS read of a granted local
folder) before their limit.
The sweep's horizon is now on the deadline that lapsed, not on the run's
start: Sim does not enforce a run's wall clock, so a long-lived run's
recently overdue call is still settled.
* fix(desktop): hand a device its calls in the order they were persisted
The inbox ordered calls by created_at, then tool_call_id. Calls of one turn
can be persisted in the same millisecond, and then the tie broke on random
ids: a device could run a click before the type the model emitted first.
Calls now carry persist_seq, a strictly increasing number assigned on insert
(pre-persist writes them in emission order), and the inbox and the overdue
sweep order by it. The migration adds the column without a default and then
sets the default, so existing rows are not rewritten; rows persisted before it
have no position and sort first, as the oldest.
* fix(desktop): reach every overdue desktop call, and declare the desktop tool names as const
A 24 h horizon on the lapsed deadline meant a call the backstop missed for a
day was never settled. The sweep starts from the few unsettled (pending or
running) calls in persistence order, so it needs no horizon to stay small.
The desktop tool names are a literal array declared as const, and the lookup
set is derived from it.
* test(mothership): give the hand-built tool call table the persistence sequence column
0 commit comments