peter
99df44d7fb
fix(api): mutations answer ok; route helpers flush and leave the commit to the handler
...
Two rows of the canonical-patterns table had drifted, found while closing the roadmap audit:
- 63 mutation responses carried no `ok` — `{"unsubscribed": true}`, `{"status": "ok"}`,
`{"added": 3, …}` and so on. Each now leads with `"ok": true` (additive: every field a client
reads is still there).
- Twelve route helpers committed on their own. Six were just the end of their handler's work and now
flush: the playlist item add/remove and Watch later get-or-create, the Plex series/season bulk
mark, and the invite decision + account activation — which an approval used to land in separate
transactions. The other six commit on purpose (a token durable before its link is mailed, a
single-use token burned as its own unit, the Google callback's tail, a background registration
with its own session, the staged search ingest around YouTube calls), each listed with its reason.
`tests/test_route_conventions.py` holds both rules in code; CLAUDE.md's two rows point at it.
2026-09-19 18:21:06 +02:00
..
2026-09-17 01:44:29 +02:00
2026-09-18 01:20:42 +02:00
2026-09-05 04:02:57 +02:00
2026-09-16 04:29:13 +02:00
2026-09-02 00:15:21 +02:00
2026-09-19 03:42:26 +02:00
2026-09-04 22:42:15 +02:00
2026-09-19 18:21:06 +02:00
2026-09-19 17:26:07 +02:00
2026-09-18 03:16:15 +02:00
2026-09-19 17:26:07 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-17 02:42:12 +02:00
2026-09-17 23:45:16 +02:00
2026-09-19 17:07:11 +02:00
2026-09-16 04:29:13 +02:00
2026-08-28 02:37:56 +02:00
2026-09-16 03:43:29 +02:00
2026-09-18 23:44:42 +02:00
2026-09-14 01:42:57 +02:00
2026-09-05 04:18:33 +02:00
2026-08-30 03:32:14 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-04 20:29:33 +02:00
2026-09-05 01:35:09 +02:00
2026-09-04 20:29:33 +02:00
2026-09-14 00:50:05 +02:00
2026-09-18 23:44:42 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 05:54:19 +02:00
2026-08-23 07:43:06 +02:00
2026-08-26 05:25:47 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 04:51:31 +02:00
2026-09-15 00:53:15 +02:00
2026-08-28 02:37:56 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 07:34:17 +02:00
2026-09-19 18:21:06 +02:00
2026-09-19 01:33:32 +02:00
2026-08-29 08:02:11 +02:00
2026-09-19 06:55:40 +02:00
2026-09-18 03:16:15 +02:00
2026-09-04 01:56:55 +02:00
2026-09-19 05:03:31 +02:00
2026-09-18 22:50:37 +02:00
2026-09-04 22:42:15 +02:00
2026-09-01 23:31:49 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-12 05:50:31 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 17:26:07 +02:00
2026-08-29 03:52:13 +02:00
2026-09-19 18:14:18 +02:00
2026-08-20 08:50:47 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 17:26:07 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 18:21:06 +02:00
2026-09-19 17:26:07 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 17:26:07 +02:00
2026-09-06 03:31:02 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 17:26:07 +02:00
2026-09-19 18:21:06 +02:00
2026-09-19 07:16:17 +02:00
2026-09-11 18:04:30 +02:00
2026-09-19 07:16:17 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-28 01:34:02 +02:00
2026-09-11 18:05:30 +02:00
2026-09-15 02:53:22 +02:00
2026-08-23 07:43:06 +02:00
2026-09-15 02:25:00 +02:00
2026-08-23 07:43:06 +02:00
2026-09-04 02:38:01 +02:00
2026-09-04 23:04:09 +02:00
2026-09-19 18:21:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 17:26:07 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 17:26:07 +02:00
2026-08-23 07:43:06 +02:00
2026-09-05 01:46:58 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-18 01:20:42 +02:00
2026-09-19 05:05:13 +02:00
2026-09-17 00:03:56 +02:00
2026-08-26 05:25:47 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-13 23:12:16 +02:00
2026-09-05 04:02:57 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 18:21:06 +02:00
2026-09-18 22:50:37 +02:00
2026-09-19 04:51:31 +02:00
2026-09-19 06:55:40 +02:00
2026-09-18 23:44:42 +02:00