xarmian
dbbbefda75
feat(push): the push dispatcher core and its privacy gates, not yet wired (TASK-3939, part B1) ( #2280 )
...
* feat(store): record a delivery by id, unclaim without an attempt, re-check holds (TASK-3939 B1)
RecordNotificationsSent is token-free for pending|expired rows (r4-L4),
UnclaimNotifications hands never-tried rows back without an attempt,
HeldNotifications is the pre-send re-check. The claim error drops the row
id (Q8), notify.SendTimeout is exported (Q4), and the store doc says SENT
is the one deliberate exception to settle-under-the-claim (Q5).
Claude-Session: https://claude.ai/code/session_018mVC2RwgKtXviHMayjw2pg
* feat(server): the push dispatcher core and its privacy gates (TASK-3939 B1)
Claims settled rows, runs membership, liveness, visibility, assignment,
comment, settings, agent-activity and device gates on each (a skip carries a
recorded reason and never reaches the gateway), groups survivors per
(user, item), sends one content-free push per live device and settles per
chunk. Lease >= sendTimeout + margin is enforced by the setter, the send
deadline and a per-chunk time check. Not wired into cmd/pad.
Claude-Session: https://claude.ai/code/session_018mVC2RwgKtXviHMayjw2pg
* test(server): dispatcher gates, lease invariant and late-send recording (TASK-3939 B1)
Claude-Session: https://claude.ai/code/session_018mVC2RwgKtXviHMayjw2pg
* test(server): an unknown notification kind is skipped (TASK-3939 B1)
Claude-Session: https://claude.ai/code/session_018mVC2RwgKtXviHMayjw2pg
* fix(server): the dispatcher logs no ids, settles zero-message units, checks the comment's item and has a clock seam (TASK-3939 B1)
C1 reword the store header (the dispatcher is wired in part B2). H1 split
computeWatchAccessVisibility into a log-free core the dispatcher calls; the
handler's wrapper logs exactly as before. H2 settle a unit with no message as
a no_device skip. H4 a mention/comment/reply row's comment must be on the
row's item and workspace. Add the unexported now seam. T3 comment on the nil
user branch.
Claude-Session: https://claude.ai/code/session_01SSofJ73Kn2s3W4TTnjoAfU
* test(store): settle primitives assert attempts, sent_at and span more than one id chunk (TASK-3939 B1)
Claude-Session: https://claude.ai/code/session_01SSofJ73Kn2s3W4TTnjoAfU
* test(server): dispatcher fix round, clock-seam lease tests, every gate error, gate order, log leak, zero-message unit (TASK-3939 B1)
Claude-Session: https://claude.ai/code/session_01SSofJ73Kn2s3W4TTnjoAfU
2026-10-22 00:38:26 -04:00
..
2026-10-20 19:06:53 -04:00
2026-10-20 19:06:53 -04:00
2026-10-05 04:50:02 -04:00
2026-09-23 22:50:47 -04:00
2026-10-21 03:31:18 -04:00
2026-09-26 09:47:46 -04:00
2026-09-26 09:47:46 -04:00
2026-09-23 21:52:27 -04:00
2026-09-06 16:59:31 -04:00
2026-09-30 02:20:23 -04:00
2026-09-23 09:05:05 -04:00
2026-09-30 06:50:13 -04:00
2026-09-06 16:59:31 -04:00
2026-10-14 13:00:57 -04:00
2026-09-06 16:59:31 -04:00
2026-10-11 06:20:09 -04:00
2026-09-06 16:59:31 -04:00
2026-10-09 22:31:16 -04:00
2026-09-06 16:59:31 -04:00
2026-10-21 02:43:37 -04:00
2026-10-14 10:09:13 -04:00
2026-10-06 01:33:24 -04:00
2026-10-05 00:02:49 -04:00
2026-10-05 09:16:24 -04:00
2026-10-13 22:34:03 -04:00
2026-10-05 02:29:48 -04:00
2026-10-05 06:09:12 -04:00
2026-10-04 07:19:07 -04:00
2026-10-04 16:16:29 -04:00
2026-10-05 07:01:22 -04:00
2026-10-04 21:36:33 -04:00
2026-10-05 09:16:24 -04:00
2026-10-05 02:29:48 -04:00
2026-10-20 10:29:59 -04:00
2026-09-25 05:13:05 -04:00
2026-09-25 05:13:05 -04:00
2026-09-06 16:59:31 -04:00
2026-10-03 05:18:30 -04:00
2026-09-06 16:59:31 -04:00
2026-10-14 00:25:14 -04:00
2026-09-06 16:59:31 -04:00
2026-09-16 15:36:49 -04:00
2026-09-22 21:47:27 -04:00
2026-10-02 13:15:31 -04:00
2026-10-12 15:12:36 -04:00
2026-10-15 10:24:24 -04:00
2026-09-13 18:34:16 -04:00
2026-10-02 11:18:07 -04:00
2026-10-03 09:19:10 -04:00
2026-04-28 12:26:39 -04:00
2026-05-18 00:03:20 -04:00
2026-10-10 23:11:23 -04:00
2026-09-06 16:59:31 -04:00
2026-10-06 21:23:38 -04:00
2026-09-25 04:25:42 -04:00
2026-09-25 06:02:57 -04:00
2026-09-25 06:02:57 -04:00
2026-09-25 07:10:26 -04:00
2026-09-26 10:52:41 -04:00
2026-09-25 05:13:05 -04:00
2026-09-25 16:24:50 -04:00
2026-09-22 08:08:15 -04:00
2026-10-15 21:24:48 -04:00
2026-09-21 22:02:48 -04:00
2026-09-21 22:50:56 -04:00
2026-09-22 00:42:02 -04:00
2026-09-22 04:15:14 -04:00
2026-10-09 10:42:55 -04:00
2026-09-23 20:24:40 -04:00
2026-09-25 14:22:09 -04:00
2026-09-27 05:40:55 -04:00
2026-09-27 05:40:55 -04:00
2026-10-08 18:21:18 -04:00
2026-09-30 09:10:41 -04:00
2026-10-01 23:56:37 -04:00
2026-10-02 11:18:07 -04:00
2026-10-05 18:38:46 -04:00
2026-10-15 08:23:56 -04:00
2026-10-02 17:01:54 -04:00
2026-10-02 23:32:54 -04:00
2026-10-02 17:51:55 -04:00
2026-10-03 09:48:19 -04:00
2026-10-03 13:58:22 -04:00
2026-10-05 07:01:22 -04:00
2026-10-05 07:01:22 -04:00
2026-10-04 13:19:45 -04:00
2026-10-05 12:44:17 -04:00
2026-10-05 21:18:56 -04:00
2026-10-06 07:59:20 -04:00
2026-10-05 22:54:52 -04:00
2026-10-06 09:59:38 -04:00
2026-10-06 18:31:29 -04:00
2026-10-11 19:31:59 -04:00
2026-10-11 00:02:50 -04:00
2026-10-11 16:25:01 -04:00
2026-10-12 16:03:18 -04:00
2026-10-17 19:32:06 -04:00
2026-10-13 11:16:07 -04:00
2026-10-13 16:54:44 -04:00
2026-10-14 08:05:34 -04:00
2026-10-14 08:53:26 -04:00
2026-10-13 16:43:10 -04:00
2026-10-13 15:05:11 -04:00
2026-10-14 11:08:56 -04:00
2026-10-14 10:21:01 -04:00
2026-10-14 08:16:14 -04:00
2026-10-13 22:34:03 -04:00
2026-10-13 10:15:42 -04:00
2026-10-14 03:32:30 -04:00
2026-10-13 19:46:53 -04:00
2026-10-14 01:07:58 -04:00
2026-10-14 01:07:58 -04:00
2026-10-13 21:32:47 -04:00
2026-10-14 08:05:34 -04:00
2026-10-13 23:30:26 -04:00
2026-10-13 19:46:53 -04:00
2026-10-14 22:53:53 -04:00
2026-10-13 15:05:17 -04:00
2026-10-15 21:24:48 -04:00
2026-10-16 21:14:10 -04:00
2026-10-16 11:08:12 -04:00
2026-10-14 17:49:17 -04:00
2026-10-14 18:46:59 -04:00
2026-10-14 19:48:28 -04:00
2026-10-15 03:51:15 -04:00
2026-10-15 17:23:24 -04:00
2026-10-16 21:14:10 -04:00
2026-10-15 07:20:42 -04:00
2026-10-15 11:24:31 -04:00
2026-10-15 08:23:56 -04:00
2026-10-15 12:22:37 -04:00
2026-10-15 10:24:24 -04:00
2026-10-15 10:24:24 -04:00
2026-10-17 11:32:56 -04:00
2026-10-20 12:58:18 -04:00
2026-10-20 18:11:13 -04:00
2026-10-21 15:57:29 -04:00
2026-10-14 18:46:59 -04:00
2026-10-07 06:40:06 -04:00
2026-10-07 06:40:06 -04:00
2026-09-06 16:59:31 -04:00
2026-10-18 12:12:51 -04:00
2026-10-09 05:04:19 -04:00
2026-09-06 23:36:58 -04:00
2026-10-08 03:59:26 -04:00
2026-10-08 03:59:26 -04:00
2026-09-06 16:59:31 -04:00
2026-09-13 16:01:12 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 16:59:31 -04:00
2026-10-09 21:47:50 -04:00
2026-10-20 18:11:13 -04:00
2026-10-21 10:12:15 -04:00
2026-10-21 10:12:15 -04:00
2026-09-30 06:50:13 -04:00
2026-09-30 00:41:20 -04:00
2026-10-21 10:12:15 -04:00
2026-09-06 16:59:31 -04:00
2026-10-13 22:34:03 -04:00
2026-09-27 05:40:55 -04:00
2026-10-10 11:54:42 -04:00
2026-10-11 22:17:03 -04:00
2026-10-11 22:17:03 -04:00
2026-09-06 16:59:31 -04:00
2026-10-04 19:22:21 -04:00
2026-10-19 04:08:03 -04:00
2026-10-19 13:05:05 -04:00
2026-10-21 18:22:54 -04:00
2026-10-21 18:22:54 -04:00
2026-09-28 22:07:36 -04:00
2026-09-28 19:32:50 -04:00
2026-09-28 22:07:36 -04:00
2026-10-04 07:19:07 -04:00
2026-10-05 22:54:52 -04:00
2026-10-14 03:32:30 -04:00
2026-09-06 16:59:31 -04:00
2026-08-27 22:45:27 -04:00
2026-09-06 16:59:31 -04:00
2026-10-15 10:24:24 -04:00
2026-10-06 01:04:29 -04:00
2026-04-13 09:14:04 -04:00
2026-09-06 16:59:31 -04:00
2026-10-05 11:27:18 -04:00
2026-10-21 15:57:29 -04:00
2026-10-14 17:49:17 -04:00
2026-09-06 16:59:31 -04:00
2026-09-26 09:47:46 -04:00
2026-09-06 16:59:31 -04:00
2026-10-05 14:44:50 -04:00
2026-09-14 01:45:30 -04:00
2026-09-07 08:27:58 -04:00
2026-10-14 00:25:14 -04:00
2026-10-05 21:18:56 -04:00
2026-10-19 23:27:16 -04:00
2026-10-13 15:44:44 -04:00
2026-10-21 10:12:15 -04:00
2026-10-15 07:20:42 -04:00
2026-10-04 15:14:27 -04:00
2026-10-13 15:44:44 -04:00
2026-09-26 00:15:15 -04:00
2026-09-26 00:15:15 -04:00
2026-10-08 08:29:44 -04:00
2026-10-02 11:18:07 -04:00
2026-09-06 16:59:31 -04:00
2026-10-17 19:32:06 -04:00
2026-10-16 06:13:11 -04:00
2026-10-11 16:44:56 -04:00
2026-09-24 09:16:17 -04:00
2026-09-29 10:14:38 -04:00
2026-10-15 11:24:31 -04:00
2026-09-06 23:36:58 -04:00
2026-10-05 19:45:01 -04:00
2026-10-10 17:26:08 -04:00
2026-10-14 19:48:28 -04:00
2026-09-06 16:59:31 -04:00
2026-10-14 03:34:15 -04:00
2026-10-12 09:24:33 -04:00
2026-10-12 09:24:33 -04:00
2026-09-06 16:59:31 -04:00
2026-08-12 15:50:41 -04:00
2026-10-11 09:28:08 -04:00
2026-10-09 02:04:52 -04:00
2026-09-06 16:59:31 -04:00
2026-10-14 05:35:34 -04:00
2026-09-06 16:59:31 -04:00
2026-07-31 17:28:05 +00:00
2026-10-14 03:34:15 -04:00
2026-09-06 16:59:31 -04:00
2026-10-09 09:38:42 -04:00
2026-10-09 09:38:42 -04:00
2026-09-06 16:59:31 -04:00
2026-09-29 10:14:38 -04:00
2026-10-03 05:18:30 -04:00
2026-10-13 16:54:44 -04:00
2026-08-14 22:39:39 -04:00
2026-09-23 07:46:45 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 16:59:31 -04:00
2026-08-31 12:59:14 -04:00
2026-09-06 16:59:31 -04:00
2026-10-05 12:44:17 -04:00
2026-09-24 08:13:59 -04:00
2026-09-06 23:36:58 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 23:36:58 -04:00
2026-10-21 08:02:26 -04:00
2026-10-15 21:24:48 -04:00
2026-09-29 10:14:38 -04:00
2026-09-29 10:14:38 -04:00
2026-10-21 15:57:29 -04:00
2026-07-30 20:15:00 +00:00
2026-09-06 12:02:20 -04:00
2026-09-30 11:03:07 -04:00
2026-10-01 20:49:44 -04:00
2026-10-13 21:32:47 -04:00
2026-09-06 16:59:31 -04:00
2026-10-10 18:32:29 -04:00
2026-09-29 12:46:03 -04:00
2026-10-04 19:22:21 -04:00
2026-10-19 07:02:00 -04:00
2026-10-21 03:31:18 -04:00
2026-09-24 09:16:17 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 16:59:31 -04:00
2026-07-07 16:32:20 -04:00
2026-09-06 16:59:31 -04:00
2026-10-16 21:14:10 -04:00
2026-10-20 15:23:54 -04:00
2026-10-20 15:23:54 -04:00
2026-10-21 08:02:26 -04:00
2026-10-21 08:02:26 -04:00
2026-10-19 07:02:00 -04:00
2026-10-19 07:02:00 -04:00
2026-09-06 16:59:31 -04:00
2026-10-20 19:06:53 -04:00
2026-10-20 19:06:53 -04:00
2026-10-21 03:31:18 -04:00
2026-10-22 00:38:26 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 16:59:31 -04:00
2026-09-24 08:13:59 -04:00
2026-10-15 07:20:42 -04:00
2026-09-06 16:59:31 -04:00
2026-10-21 18:22:54 -04:00
2026-09-01 14:29:07 +00:00
2026-10-04 07:19:07 -04:00
2026-10-03 16:02:18 -04:00
2026-10-19 10:25:43 -04:00
2026-10-19 10:25:43 -04:00
2026-09-26 01:09:03 -04:00
2026-10-20 19:06:53 -04:00
2026-10-20 19:06:53 -04:00
2026-09-24 08:13:59 -04:00
2026-09-24 08:13:59 -04:00
2026-09-24 08:13:59 -04:00
2026-09-26 00:15:21 -04:00
2026-09-26 00:15:21 -04:00
2026-09-16 15:36:49 -04:00
2026-09-06 16:59:31 -04:00
2026-10-04 19:22:21 -04:00
2026-10-02 23:32:42 -04:00
2026-10-02 23:32:42 -04:00
2026-09-06 16:59:31 -04:00
2026-10-02 22:41:29 -04:00
2026-10-14 02:02:41 -04:00
2026-09-29 19:29:17 -04:00
2026-10-04 19:22:21 -04:00
2026-10-02 18:34:56 -04:00
2026-10-13 22:34:03 -04:00
2026-09-06 16:59:31 -04:00
2026-10-03 19:41:18 -04:00
2026-10-03 09:19:10 -04:00
2026-09-06 12:02:20 -04:00
2026-09-30 10:02:41 -04:00
2026-10-09 22:31:16 -04:00
2026-10-09 22:31:16 -04:00
2026-10-09 21:47:50 -04:00
2026-10-11 09:28:08 -04:00
2026-10-11 06:20:09 -04:00
2026-10-11 22:17:03 -04:00
2026-09-29 10:14:38 -04:00
2026-09-22 07:34:33 -04:00
2026-08-25 22:40:58 -04:00
2026-09-07 17:32:36 -04:00
2026-09-07 17:32:36 -04:00
2026-10-21 06:49:54 -04:00
2026-10-21 06:49:54 -04:00
2026-10-22 00:38:26 -04:00
2026-10-22 00:38:26 -04:00
2026-10-05 11:27:18 -04:00
2026-10-18 12:12:51 -04:00
2026-09-11 00:57:47 -04:00
2026-09-11 00:57:47 -04:00
2026-09-13 16:01:12 -04:00
2026-09-11 00:57:47 -04:00
2026-09-15 00:50:12 -04:00
2026-09-13 16:01:12 -04:00
2026-09-13 16:01:12 -04:00
2026-09-14 11:49:35 -04:00
2026-09-24 01:01:52 -04:00
2026-09-23 22:50:47 -04:00
2026-09-13 16:01:12 -04:00
2026-09-13 16:01:12 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 23:36:58 -04:00
2026-10-21 03:31:18 -04:00
2026-09-06 16:59:31 -04:00
2026-05-29 15:00:34 -04:00
2026-09-23 18:21:38 -04:00
2026-10-09 08:14:55 -04:00
2026-10-09 08:14:55 -04:00
2026-10-09 22:31:16 -04:00
2026-09-17 11:02:02 -04:00
2026-09-06 16:59:31 -04:00
2026-10-11 19:48:40 -04:00
2026-10-02 17:01:54 -04:00
2026-10-21 06:49:54 -04:00
2026-10-02 18:34:56 -04:00
2026-09-24 01:39:03 -04:00
2026-04-28 12:26:39 -04:00
2026-09-15 00:50:12 -04:00
2026-09-06 16:59:31 -04:00
2026-10-05 04:50:02 -04:00
2026-10-21 06:49:54 -04:00
2026-09-06 16:59:31 -04:00
2026-10-11 19:31:59 -04:00
2026-09-25 07:10:26 -04:00
2026-10-03 09:19:10 -04:00
2026-10-10 03:04:20 -04:00
2026-10-10 18:32:29 -04:00
2026-10-09 21:21:19 -04:00
2026-10-03 12:15:04 -04:00
2026-10-02 20:39:53 -04:00
2026-10-04 21:36:33 -04:00
2026-10-03 18:09:33 -04:00
2026-10-03 18:09:33 -04:00
2026-10-03 20:36:50 -04:00
2026-10-03 19:41:18 -04:00
2026-10-05 19:45:01 -04:00
2026-10-05 02:29:48 -04:00
2026-10-04 11:59:42 -04:00
2026-10-04 16:16:29 -04:00
2026-10-04 19:22:21 -04:00
2026-10-04 19:22:21 -04:00
2026-10-13 22:34:03 -04:00
2026-10-04 09:51:29 -04:00
2026-10-05 11:27:18 -04:00
2026-10-04 20:35:13 -04:00
2026-10-05 09:16:24 -04:00
2026-10-05 00:02:49 -04:00
2026-10-05 14:44:50 -04:00
2026-10-05 09:16:24 -04:00
2026-10-05 02:29:48 -04:00
2026-10-09 21:29:40 -04:00
2026-10-09 21:29:40 -04:00
2026-10-10 11:54:42 -04:00
2026-10-10 17:26:08 -04:00
2026-10-11 00:17:53 -04:00
2026-10-11 00:07:56 -04:00
2026-10-11 11:33:30 -04:00
2026-10-11 18:39:37 -04:00
2026-10-19 10:25:43 -04:00
2026-10-19 10:25:43 -04:00
2026-10-12 15:12:36 -04:00
2026-10-21 10:12:15 -04:00
2026-10-19 19:58:46 -04:00
2026-10-21 19:22:06 -04:00
2026-10-22 00:38:26 -04:00
2026-10-21 10:12:15 -04:00
2026-04-28 12:26:39 -04:00
2026-10-21 06:49:54 -04:00
2026-09-06 16:59:31 -04:00
2026-10-21 15:57:29 -04:00
2026-10-21 15:57:29 -04:00
2026-09-24 01:39:03 -04:00
2026-09-05 20:43:43 -04:00
2026-10-06 22:23:29 -04:00
2026-09-24 13:12:32 -04:00
2026-10-14 23:51:01 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 16:59:31 -04:00
2026-10-18 23:25:22 -04:00
2026-09-06 16:59:31 -04:00
2026-10-21 15:57:29 -04:00
2026-09-08 14:51:21 -04:00
2026-10-19 10:25:43 -04:00
2026-10-13 16:43:16 -04:00
2026-10-14 22:53:53 -04:00
2026-10-15 12:22:37 -04:00
2026-05-16 10:15:59 -04:00
2026-08-12 15:50:41 -04:00
2026-08-12 15:50:41 -04:00
2026-10-05 14:44:50 -04:00
2026-09-06 16:59:31 -04:00
2026-10-05 14:44:50 -04:00
2026-10-14 12:24:27 -04:00
2026-10-14 12:24:27 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 16:59:31 -04:00
2026-10-21 02:43:37 -04:00
2026-10-14 00:25:14 -04:00
2026-10-14 00:25:14 -04:00
2026-10-08 22:22:06 -04:00
2026-10-16 21:14:10 -04:00
2026-09-06 16:59:31 -04:00
2026-10-17 19:32:06 -04:00
2026-10-20 19:06:53 -04:00
2026-10-11 11:33:30 -04:00
2026-09-28 18:33:09 -04:00
2026-09-28 18:33:09 -04:00
2026-09-28 18:33:09 -04:00
2026-09-28 20:55:28 -04:00
2026-09-06 16:59:31 -04:00
2026-09-06 16:59:31 -04:00
2026-10-15 21:24:48 -04:00
2026-10-13 23:30:26 -04:00
2026-09-21 22:02:48 -04:00
2026-10-09 10:42:55 -04:00
2026-10-11 00:17:53 -04:00
2026-09-06 16:59:31 -04:00
2026-10-09 15:03:53 -04:00