Repository navigation
Loops open in a dialog like New Task, and can run every day at a set time - #276
Merged
Merged
Conversation
…time Creating and editing a loop now happens in the same popup as the task composer, opened over whatever view you are on. The sidebar's "+" used to switch tabs without clearing a full-width task, so it did nothing visible; it now opens the dialog directly, and a new loop's sidebar section expands so the loop lands somewhere you can see it. The schedule is a list instead of a bare minutes field: every 15/30 min, 1/6/12 hours, every day at a time, or custom minutes. "Every day at" is a 5-field cron stored with the setter's IANA zone, so a UTC box still fires at their local time; croner computes slots and handles DST. A missed slot runs once on wake, like intervals. This is protocol v11, and the option is gated off for older engines, which would silently keep the old interval. Also fixes intervals longer than ~24.8 days firing immediately and then back to back (setTimeout overflow); the runner now waits in hops. The phone shows a daily schedule read-only and no longer turns it hourly on save.
…ebar-does # Conflicts: # apps/desktop/src/renderer/src/App.tsx # packages/protocol/src/index.ts # packages/server/src/dispatcher.ts
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
Loop dialog. Creating and editing a loop now happen in the same popup as the New Task composer, opened over whatever view you are on.
+used to call a rawsetView("loops"), which does nothing while a task is open full-width (the focused task covers every view). It now opens the dialog directly. A never-run loop's sidebar row had the same dead click; it now goes throughgoToView.Schedule picker. The bare "every N min" field is now a list: every 15/30 min, 1/6/12 hours, Every day at [time], and Custom (minutes).
croner(zero-dependency, MIT) computes slots and handles DST. It bundles into the box'scli.js, so boxes install nothing new.FEATURE_MIN_VERSION.loopSchedules. A v12 engine would dropcronon update and keep the old interval while the save looks applied, so the option is disabled for those boxes with a reason.Bug fix. An interval longer than ~24.8 days fired immediately and then back to back, because
setTimeoutoverflows past 2^31-1 ms. The runner now waits in hops.Mobile. The phone shows a daily schedule read-only and no longer turns it hourly on save. It does not get the new picker yet.
Testing
scripts/typecheck.shclean on the merged tree.system:hello handshake, which times out probing agent CLIs and fails identically on untouchedmain.Not verified