Skip to content

chore(calendar): the repeating-event dialog's parts, not yet shown → 3.148.9-alpha (C9b-1a of #884) - #960

Merged
BBYU26 merged 4 commits into
chore/calendar-split-journalfrom
chore/calendar-series-dialog-parts
Oct 22, 2026
Merged

BBYU26 merged 4 commits into
chore/calendar-split-journalfrom
chore/calendar-series-dialog-parts

Conversation

@BBYU26

@BBYU26 BBYU26 commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Part of #884. C9b-1a, the first half of C9b-1: the dialog that asks which occurrences of a repeating event you mean, built and tested but not shown yet. 3.148.9-alpha (renumbered from 3.148.8 on 21-10, when #959 moved onto #968). Stacked on #959: the base is chore/calendar-split-journal, and there's no closing link while the base isn't main.

What it builds

Backend (safe on its own):

  • A one-off that became a repeating event in Google is refused in the gate (BecameRepeating). This covers opening it, saving it, deleting it and planning a change, and it comes before the existing Recurring reason, which stays.
  • When a delete's choices find the occurrence changed in Google, PM lands Google's copy. It does the same at the send and in the one-event delete.
  • A settle that leaves the change held answers partial_split with a note, so the notice keeps its buttons.
  • One MISSING_CHOICE_OK gate for the three shells, with a test that reads the source.
  • The words PM shows for repeating-event refusals no longer say "series", "split", "instance", "exception" or "master". A test walks every variant.

Frontend:

  • saveChoices.ts: the rows, the default pick, warning lines and the repeat-day question.
  • SaveChoicesDialog: built, not mounted.
  • The useEventWrites store: choices, scoped saves and deletes, settling, and partial notices that outlive the Calendar tab.
  • WriteNotices action buttons (Finish / Remove the new part / Check again).
  • The copy in editReasons.

Nothing changes for you yet: repeating events stay read-only, and release builds still refuse scoped writes and settling. The one visible change is that a one-off turned repeating in Google now says so.

Decisions taken while you were away (recommendations from the spec)

  1. Two PRs: this one, then C9b-1b, which lifts Recurring and mounts the dialog, so main never shows Edit on a repeating event without it.
  2. No automatic Finish: every send stays something you pressed.
  3. Only the selected row's warnings show, under the radios.

Reviews

  • Round 1 (four lenses, each finding checked by a skeptic) kept five lows, all fixed:
    • a save's title defaulting to empty;
    • the dialog's late refusal not announced;
    • every notice wrapping;
    • a missing test;
    • the What's New wording.
  • Round 2 kept one low: a settle's plain "busy" now says Google turned Finish away and PM put the event back.

Each guard was checked by breaking it and seeing a test fail.

Checks

The full just check passes at the tip: 2,105 Rust tests and 2,065 frontend tests.

🤖 Generated with Claude Code

@BBYU26 BBYU26 added enhancement New feature or request rust Pull requests that update rust code labels Oct 19, 2026
Copilot AI balanced review requested due to automatic review settings October 19, 2026 11:38
@BBYU26 BBYU26 self-assigned this Oct 19, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

BBYU26 and others added 4 commits October 21, 2026 16:19
…3.148.8-alpha (C9b-1a of #884)

The "which occurrences?" dialog for a repeating event is built and
tested but not mounted: the pure rules and words (saveChoices.ts), the
SaveChoicesDialog, the store's choices, scoped writes and settling in
useEventWrites, and settle buttons on WriteNotices. Repeating events
stay read-only and release builds still refuse scoped writes.

Backend: a one-off Google has turned into a series is read-only with
its own reason (BecameRepeating) on every path; a delete's choices that
meet a changed occurrence land Google's copy; every orphan's words are
said; a settle that leaves the change held answers PartialSplit with a
note, so its buttons stay; one release gate for a missing choice,
pinned by a source test; no jargon in what rows show.

The one visible change: the became-repeating reason's wording.

Part of #884

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…are announced; notices wrap only with settle buttons

Review round 1 of C9b-1a: saveEdit's title is required, so a partial
notice can't read "(no title)"; the choices dialog's refusal, which arrives
after it opened, is a live region whatever its tone; only a notice with settle
buttons wraps them under its words, so other notices look as before; a settle
with no answer keeps its notice's own offers (now tested); and the What's New
line no longer says the event was made in PM.

Part of #884

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review round 2 of C9b-1a: PM's own claim now reaches a settle as a held change
with a note, so a plain busy answer only comes from Google refusing Finish's
next step, after which PM took the new part back. Its words said PM was still
changing the event; they now say it was put back as it was.

Part of #884

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Renumbered above #959's new 3.148.8-alpha now that the stack sits on #968.

Part of #884

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@BBYU26 BBYU26 changed the title chore(calendar): the repeating-event dialog's parts, not yet shown → 3.148.8-alpha (C9b-1a of #884) chore(calendar): the repeating-event dialog's parts, not yet shown → 3.148.9-alpha (C9b-1a of #884) Oct 21, 2026
@BBYU26
BBYU26 force-pushed the chore/calendar-series-dialog-parts branch from 146067c to c26d070 Compare October 21, 2026 15:37
@BBYU26
BBYU26 added this pull request to stack #975 October 22, 2026 02:51
@BBYU26
BBYU26 merged commit 8b73e10 into main Oct 22, 2026
17 checks passed
@BBYU26
BBYU26 deleted the chore/calendar-series-dialog-parts branch October 22, 2026 03:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants