Repository navigation
automations: the conversation can change one in place - #1829
Merged
Merged
Conversation
ZeroPoint95
added a commit
that referenced
this pull request
Oct 14, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ZeroPoint95
added a commit
that referenced
this pull request
Oct 14, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ZeroPoint95
added a commit
that referenced
this pull request
Oct 14, 2026
Review of #1829. A `when` re-sent as it was counted as a new schedule, so the card worked out a next run from now while Store.Update, which only reschedules on a different moment, rhythm or zone, kept the old one: a finished watch's card promised a run it never got, and an hourly one's promised a slot off its grid. - automation.ScheduleChanged is now the one reading of "a different schedule", and the change op asks it before counting a `when` as new. - A rhythm keeps its stored zone exactly, empty (the machine's) included, so re-sending the same `every` does not give it a zone and move it. - The refusal names title and words too; a change's card says `next run`. - DESIGN.md says the conversation's `change` raises `save this change?`. - Tests: the same `when` re-sent, deleted while the card is up, and a paused one staying paused. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ZeroPoint95
force-pushed
the
zeropoint95/automation-change-op
branch
from
October 14, 2026 21:32
64cbff4 to
bc85f95
Compare
ZeroPoint95
marked this pull request as ready for review
October 14, 2026 21:36
The `automation` tool had no op that changes an existing automation, so "move my water reminder to 5pm" could only propose a second one beside the first, often a finished reminder left standing in /automations. - `change` takes an id and only the fields that change, lays them over the saved automation, and raises the same card the typed edit does: `save this change?`, `1 Save` and `0 Don't save`. Save goes through Store.Update, which works a new schedule out from now and wakes a finished one-time reminder. - An id on a card is what makes it a change, so AutomationHead and AutomationOptions decide it once for both doors; the typed edit now reads its head and answers from session. - The page tells the model one that exists is changed, never proposed again. The bytes were paid out of the tool description's repeat of the watch fields; both prefix arms are 22 bytes lighter and both waivers fall by that (PERF.md). - The manual's "Change an automation" leads with asking, and the denial that the chat had no verb for it is gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of #1829. A `when` re-sent as it was counted as a new schedule, so the card worked out a next run from now while Store.Update, which only reschedules on a different moment, rhythm or zone, kept the old one: a finished watch's card promised a run it never got, and an hourly one's promised a slot off its grid. - automation.ScheduleChanged is now the one reading of "a different schedule", and the change op asks it before counting a `when` as new. - A rhythm keeps its stored zone exactly, empty (the machine's) included, so re-sending the same `every` does not give it a zone and move it. - The refusal names title and words too; a change's card says `next run`. - DESIGN.md says the conversation's `change` raises `save this change?`. - Tests: the same `when` re-sent, deleted while the card is up, and a paused one staying paused. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 tasks done
ZeroPoint95
force-pushed
the
zeropoint95/automation-change-op
branch
from
October 14, 2026 23:45
bc85f95 to
20958ce
Compare
ZeroPoint95
added a commit
that referenced
this pull request
Oct 15, 2026
#1829 (automation change) and this branch both shrank the fixed prefix. The two waiver paragraphs in PERF.md and prefixbudget_test.go are both kept, and the re-measured prefix — 52,497 full, 44,893 lean, each side's savings adding exactly — sets the waivers at 4,497 and 13,393. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 tasks done
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.
Adds a
changeop to theautomationtool, so asking in chat to change an automation changes that automation instead of proposing a duplicate.Based on
dev, after #1831 (squash 966e2a7).What changed
changetakes anidand only what changes:title,words,when,say/do,look,worktree,limitssave this change?,1 Save/0 Don't save, andnext runin place offirst runStore.Update, so a finished one-time reminder given a new time wakes againwhenis not a new schedule.automation.ScheduleChangeddecides that for both the card and the save, so the card never promises a run the save doesn't give.AutomationHeadandAutomationOptionsdecide this for both doors.How it was checked
Run after rebasing onto
devat 966e2a7:gofmt -landgo veton automation, session, tui3 and manual: cleango test -race ./internal/automation/: okgo test -run 'Change|Prefix|Automation|Belt|ReSending|Paused|Deleted' ./internal/session/: ok. Prefix is 52,691 fixed and 44,913 lean; dev measures 52,713 and 44,935.go test -run 'TestAChangeTheModelAsksForDrawsTheEditsCard|Automation|Typed|Edit' ./internal/tui3/: okgo test ./internal/manual/ ./internal/e2e/: okmake changelog-check: 7 entries, all well formedmake test-laws: okNew tests:
whenkeeps the next run, the anchor and the zoneChecklist
docs/changes/unreleased/1829-automation-change-op.mdautomations.md,keys.md,questions.md, plus probes inchat_test.go.github/known-red.txtline (the ledger no longer exists)🤖 Generated with Claude Code