hamed and Claude Opus 5
ca2f9b8652
feat(admin): build the last two screens, and pin spacing with a test
...
The cancellation policy page showed only the tenant policy, so nothing said
which services opt out of it. Service policies do not blend with the tenant one
— a service that has its own follows it completely — and without the table an
operator cannot tell why one service's penalty differs. It lists them with a
link to each service.
The waitlist had the matches endpoint and no way to reach it. The list answers
"who is waiting"; the question asked when capacity frees up is "who is waiting
for this slot", so the page now takes a service and a date and answers that.
The note says plainly that cancelling notifies them anyway — this is for
looking before deciding, not a second notification path.
Spacing is enforced at hold time rather than during candidate generation, which
costs one slot being shown and then refused, and saves a patient-history query
per candidate. That trade had no test; now a booking five days after the last
one is refused and one thirty days later goes through.
Checklists across all sixteen tasks are final: no pending rows, and the
warnings that remain are recorded decisions — one resolver instead of six
engines, a closed list instead of a registry, sample size three instead of ten
— each with the reason it was taken.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-01 15:32:58 +03:30
..
2026-07-13 14:16:21 +03:30
2026-07-13 14:16:21 +03:30
2026-07-18 10:38:56 +03:30
2026-07-23 15:18:59 +03:30
2026-07-29 21:04:40 +03:30
2026-07-29 21:04:40 +03:30
2026-07-19 13:29:46 +03:30
2026-07-31 21:27:55 +03:30
2026-07-30 14:57:21 +03:30
2026-07-29 13:28:59 +03:30
2026-07-30 14:57:21 +03:30
2026-07-22 16:43:56 +03:30
2026-07-23 18:39:58 +03:30
2026-07-14 00:26:47 +03:30
2026-07-25 18:45:09 +03:30
2026-07-31 20:05:12 +03:30
2026-07-27 18:54:35 +03:30
2026-07-29 20:26:51 +03:30
2026-07-23 21:01:58 +03:30
2026-07-25 17:50:14 +03:30
2026-07-29 21:04:40 +03:30
2026-07-30 16:48:49 +03:30
2026-07-30 16:48:49 +03:30
2026-07-30 16:48:49 +03:30
2026-07-30 16:48:49 +03:30
2026-07-31 12:06:48 +03:30
2026-08-01 15:32:58 +03:30
2026-07-27 16:41:52 +03:30
2026-07-29 20:26:51 +03:30
2026-07-29 13:28:59 +03:30
2026-07-29 20:26:51 +03:30
2026-07-19 11:25:45 +03:30
2026-07-29 20:26:51 +03:30
2026-07-29 20:26:51 +03:30
2026-07-29 20:26:51 +03:30
2026-07-18 12:10:49 +03:30
2026-08-01 15:23:23 +03:30
2026-07-29 21:04:40 +03:30
2026-07-19 16:09:55 +03:30
2026-07-31 21:42:11 +03:30
2026-07-29 21:15:09 +03:30
2026-07-30 10:18:41 +03:30
2026-07-17 12:24:32 +03:30
2026-07-11 11:49:04 +03:30
2026-07-29 20:26:51 +03:30
2026-07-29 20:26:51 +03:30
2026-07-13 13:44:02 +03:30
2026-07-29 21:04:40 +03:30
2026-07-29 20:26:51 +03:30
2026-07-12 14:49:09 +03:30
2026-07-30 18:28:48 +03:30
2026-07-25 17:50:14 +03:30
2026-07-15 14:32:29 +03:30
2026-07-23 18:39:58 +03:30
2026-07-19 13:29:46 +03:30
2026-07-27 16:41:52 +03:30
2026-07-18 10:38:56 +03:30
2026-07-28 15:06:28 +03:30
2026-07-15 11:39:32 +03:30
2026-07-28 15:06:28 +03:30
2026-07-27 16:41:52 +03:30
2026-07-19 10:38:29 +03:30
2026-07-29 20:26:51 +03:30
2026-07-19 10:38:29 +03:30
2026-07-27 19:37:44 +03:30
2026-07-15 12:23:17 +03:30
2026-07-27 16:41:52 +03:30
2026-07-18 10:54:37 +03:30
2026-07-16 14:20:32 +03:30
2026-07-29 20:26:51 +03:30
2026-07-31 21:42:11 +03:30
2026-07-29 21:04:40 +03:30
2026-08-01 13:59:58 +03:30
2026-07-31 11:11:03 +03:30
2026-08-01 15:07:27 +03:30
2026-07-16 08:56:59 +03:30
2026-07-29 20:26:51 +03:30
2026-07-15 09:31:50 +03:30
2026-07-29 21:04:40 +03:30
2026-07-29 20:26:51 +03:30
2026-07-29 21:04:40 +03:30
2026-07-13 12:45:57 +03:30
2026-07-29 20:26:51 +03:30
2026-07-31 12:27:54 +03:30
2026-08-01 13:59:58 +03:30
2026-07-31 10:44:28 +03:30
2026-07-31 10:44:28 +03:30
2026-07-31 21:42:11 +03:30
2026-07-31 10:44:28 +03:30
2026-08-01 15:07:27 +03:30
2026-07-04 22:05:27 +03:30
2026-07-31 21:42:11 +03:30
2026-07-19 16:09:55 +03:30
2026-07-29 20:26:51 +03:30
2026-07-23 22:13:37 +03:30
2026-07-29 20:26:51 +03:30
2026-07-02 21:22:14 +03:30
2026-07-18 10:38:56 +03:30
2026-07-18 10:38:56 +03:30
2026-07-29 21:04:40 +03:30
2026-07-14 00:07:00 +03:30
2026-08-01 14:37:32 +03:30
2026-07-31 21:42:11 +03:30
2026-07-30 18:28:48 +03:30
2026-08-01 13:45:25 +03:30
2026-07-30 17:51:38 +03:30
2026-07-30 17:51:38 +03:30
2026-07-31 20:50:43 +03:30
2026-07-31 21:42:11 +03:30
2026-08-01 15:07:27 +03:30
2026-07-29 21:04:40 +03:30
2026-07-23 16:36:35 +03:30
2026-07-25 18:34:18 +03:30
2026-07-29 20:26:51 +03:30
2026-07-25 18:34:18 +03:30
2026-07-25 18:34:18 +03:30
2026-07-25 18:34:18 +03:30
2026-07-27 16:41:52 +03:30
2026-07-18 12:34:42 +03:30
2026-07-31 19:42:24 +03:30
2026-07-19 13:29:46 +03:30
2026-07-29 20:26:51 +03:30
2026-07-17 21:56:27 +03:30
2026-07-23 18:11:41 +03:30
2026-07-19 22:01:34 +03:30
2026-07-29 20:26:51 +03:30
2026-07-29 21:04:40 +03:30
2026-07-30 17:51:38 +03:30
2026-07-27 16:41:52 +03:30
2026-07-27 16:41:52 +03:30
2026-07-30 10:18:41 +03:30
2026-07-30 10:30:39 +03:30
2026-07-27 16:41:52 +03:30
2026-07-18 11:05:47 +03:30
2026-07-27 16:41:52 +03:30
2026-07-14 15:39:45 +03:30
2026-07-23 18:39:58 +03:30
2026-08-01 13:51:34 +03:30
2026-08-01 15:07:27 +03:30
2026-07-29 20:26:51 +03:30
2026-07-29 21:04:40 +03:30
2026-08-01 15:32:58 +03:30