GSD Task Manager · parity and focus foundations · October 31, 2026
Every PR merged in one morning, ahead of a window planned for November 2 to 13. Nothing has reached users yet: Android 0.10.1 is waiting on your device test and upload, and iOS and web changes go out with their next releases.
Web main CI is green at 0709c88, with four WebKit E2E tests passing only on retry. No PRs are open in any repo.
| Goal | State | Where it landed |
|---|---|---|
| 1. Android Saved parity and a 0.10.1 build | ◷ Merged, not uploaded | #34, release #48 (versionCode 12) |
| 2. Escalation by due date on all three clients | ✓ Done | 38-case corpus, editor hints included |
| 3. Due time of day on web and Apple | ✓ Done | Web #636, Apple #48, 117-case corpus on all three |
| 4. Apple sync-safety gaps and data fixes | ✓ Done | iOS #41, #42, #43, #49, #53, plus #46, #47, #50 |
| 5. Web and MCP fixes | ✓ Done | Web #641, #644, #647, #651, #652. B-11 changed the tool description only. |
| 6. Top three and weekly sweep specs | ✓ Done | Web #645, #648. The spec defaults stand because you didn't change them. |
| 7. P2 and P3 gaps, as capacity allowed | ✓ Done | B-22 finished on web. You dropped B-29, so it stays open. |
Each dot is one PR, placed at its merge time in CDT. Dots in the same few minutes stack. The merges came in batches because reviewed PRs went in as groups. Every PR is listed in the table at the bottom.
Sorted from each PR title's commit type. Chores are counted with docs.
25,882 lines added and 606 removed. More than half are corpus and fixture JSON copied byte for byte between repos, so read app code as the real size. File types are my sort by path, so treat them as close, not exact.
| Capability | Web | iOS and Mac | Android |
|---|---|---|---|
| Escalation by due date | New #635, #638, #656 | New #40, #44, #60, #61 | New #35, #38 |
| Due time of day | New #636 | New #48 | Had it, corpus added #36 |
| All-day reminders at 9 a.m. | New #636 | New #48 | New #44 |
| Saved tasks | Had it | Had it | New #34 |
| Snooze presets on card and in editor | New #654, #660 | Had it | Had it |
| Far-future timestamp cap | Had it | New #42 | New #39 |
| Identity check before reconcile deletes | New #649 | New #45 | Had it |
| Three-verdict remote absence | Had it | New #43 | Had it |
| Pull contract version 3 | Had it | Had it | New #34 |
complete_task (#651)saved_at backfill on a locally newer row (#34).main went red twice. #647 and #649 clashed in a test, fixed by #658. Then #660 broke a selector in due-time.spec.ts, fixed by #661. My review of #660 missed it.sprint/OWNER-DECISIONS.md records two of them.FeedbackViewModelTest, a teardown race, one failure in four full runs.| Corpus | Cases | Who runs it |
|---|---|---|
| Due time of day | 117 | Web, iOS, Android |
| Escalation | 38 | Web, iOS, Android |
| Top three | 123 | Nobody yet, sprint 2 builds it |
| Weekly sweep | 74 | Nobody yet, sprint 2 builds it |
A check of 74 fixture copies across the repos found no mismatches. The all-day reminder rule, the far-future cap, the identity check, and three-verdict absence now hold on all three clients.
sprint/parity-deltas.md into the Project docs and check the row ids.OWNER-DECISIONS.md.saved_at can be cleared after an upgrade on web and iOS. Reproduced on a fake server, exposure unmeasured.notify_before always a number.IOS-CAP-REFILL, IOS-BG-REM, IOS-ARCHIVE-MENU, IOS-FIXTURE-PAIR, RECONCILE-RECHECK, AND-RT-FENCE, WEB-RT-Q, WEB-SKIP-CURSOR, SCRIPT-VALIDATORS, MCP-10B, MCP-11B, AND-FEEDBACK-FLAKE, WEB-E2E-OFFLINE.| Merged | Repo | PR | Title | Added | Removed |
|---|
Built from gh pr list and sprint/parity-deltas.md. Times are CDT. Backlog ids come from SPRINT.md and PR descriptions, because no one in the sprint could read the backlog itself.