Commit Graph

  • 1f4ab9b549 fix(events): abandon and teardown must not strand a joiner or leak a PubSub xarmian 2026-08-24 01:20:20 +00:00
  • c719bf44b1 test(events): make the confirm-versus-timer race deterministic xarmian 2026-08-24 01:09:16 +00:00
  • 703e746922 fix(events): bound the replay at registration instead of withholding fan-out xarmian 2026-08-24 01:06:52 +00:00
  • 739f573b3b docs(events): the namespace helper's comment described a window this fix closed xarmian 2026-08-24 00:44:54 +00:00
  • 4148278ef6 test(events): drive the double-delivery window through the gap it actually opens xarmian 2026-08-24 00:40:21 +00:00
  • ad8853f0bc test(events): assert the widened-window premise after the defect assertion xarmian 2026-08-24 00:38:11 +00:00
  • 548b31588b fix(events): await Redis registration before admitting an SSE subscriber xarmian 2026-08-24 00:37:35 +00:00
  • 4b0d41c17d Merge pull request #1182 from PerpetualSoftware/fix/generation-key-corruption-guard xarmian 2026-08-23 19:58:54 -04:00
  • 86277915e1 Merge branch 'main' into fix/generation-key-corruption-guard xarmian 2026-08-23 19:27:46 -04:00
  • 5ff0cc9b59 Merge pull request #1183 from PerpetualSoftware/fix/events-load-fragile-tests xarmian 2026-08-23 19:25:13 -04:00
  • 9a8e41f8ab test(events): keep invariants in the comments and process history in the trail (BUG-2742, codex round 12) xarmian 2026-08-23 22:38:05 +00:00
  • bfaa1d88a9 test(events): make the nearest example safe to copy (BUG-2742, codex round 10) xarmian 2026-08-23 22:29:42 +00:00
  • 7378707350 test(events): prove the replacement subscription is live by getting an event back (BUG-2742, codex round 9) xarmian 2026-08-23 22:26:39 +00:00
  • 6ba8e8dd79 test(events): retract the reconnect wait, which guaranteed nothing (BUG-2742, codex round 8) xarmian 2026-08-23 22:20:57 +00:00
  • f6a58b6b80 test(events): finish the depth migration, close the go-redis bound, correct a rationale (BUG-2742, codex round 7) xarmian 2026-08-23 20:51:33 +00:00
  • 0d501761b9 test(events): derive the drop-boundary tests from the depth, and name what the waits stop testing (BUG-2742, codex round 6) xarmian 2026-08-23 20:44:12 +00:00
  • 6c81cf923c test(events): make three comments true of the code they sit on (BUG-2742, codex round 5) xarmian 2026-08-23 20:38:10 +00:00
  • 8597d60884 test(events): close the two remaining instances of both shapes (BUG-2742, codex round 4) xarmian 2026-08-23 20:32:52 +00:00
  • 79b0f23c45 test(events): strengthen the ordering test and correct the registration mechanism (BUG-2742, codex rounds 2-3) xarmian 2026-08-23 20:19:21 +00:00
  • e1f256b48c test(events): wait for the subscription to register before publishing (BUG-2742) xarmian 2026-08-23 20:02:43 +00:00
  • 63c45bc651 test(events): buy ordering-race detection with repetition, not a load-dependent sample (BUG-2742) xarmian 2026-08-23 20:02:29 +00:00
  • a04912197a test(events): the clamp table needs no Redis (BUG-2740) xarmian 2026-08-23 17:27:41 +00:00
  • 161e60334e docs(events): why per-workspace backward detection is enough for a global counter (BUG-2740, codex round 8) xarmian 2026-08-23 16:54:10 +00:00
  • 99cb56f50a fix(events): a broken host clock must not make the repair fatal (BUG-2740, codex round 7) xarmian 2026-08-23 16:17:59 +00:00
  • 0accca7a40 test(events,docs): pin the detection chain a colliding repair actually relies on (BUG-2740, codex round 5) xarmian 2026-08-23 16:05:44 +00:00
  • 383c6dc8d8 docs(events,metrics): finish the epoch_regressed claim and fix the heading level (BUG-2740, codex round 5) xarmian 2026-08-23 15:58:26 +00:00
  • 8c05b02c7d docs(events,metrics): document the repair path an operator will actually meet (BUG-2740, codex round 4) xarmian 2026-08-23 15:52:43 +00:00
  • e00b1d2a1a fix(events): the generation ceiling is one digit under the epoch ceiling (BUG-2740, codex round 4) xarmian 2026-08-23 15:48:58 +00:00
  • 729abfd3b2 test(events): isolate the id==1 rotation branch, and record the ruling on the seed (BUG-2740, codex round 3) xarmian 2026-08-23 15:37:59 +00:00
  • d81f67a7a6 fix(events): publish the generation Redis holds, not Lua's rendering of it (BUG-2740, codex round 2) xarmian 2026-08-23 15:32:21 +00:00
  • 483ac6e097 test(events): drive all three rotation branches, not one (BUG-2740) xarmian 2026-08-23 15:18:50 +00:00
  • 538b0d5ed4 fix(events): guard the generation counter the way the epoch key beside it is guarded (BUG-2740) xarmian 2026-08-23 15:16:35 +00:00
  • 1ff79af03f Merge pull request #1181 from PerpetualSoftware/fix/watch-bus-undetected-holes xarmian 2026-08-23 11:08:23 -04:00
  • f4d1616078 docs(deployment): name the resume-boundary residual for operators too (BUG-2739) xarmian 2026-08-23 14:35:18 +00:00
  • 47a83ccdd2 docs(watchevents): scope round 21's boundary claim to what it actually closes (BUG-2739, codex round 22) xarmian 2026-08-23 14:16:16 +00:00
  • c854c5248d fix(watchevents): refuse the ambiguous cursor after a counter reset (BUG-2739, codex round 21) xarmian 2026-08-23 14:08:46 +00:00
  • e4167a9160 docs(deployment): five corrections from reading the doc as a document (BUG-2739, codex round 20) xarmian 2026-08-23 13:56:42 +00:00
  • bc87aee6b5 fix(docs,metrics): repair the metrics table I split, and bound the fan-out claim (BUG-2739, codex round 19) xarmian 2026-08-23 13:48:15 +00:00
  • 603c7f77c3 docs(watchevents): bring the shared Bus contract up to what RedisBus now does (BUG-2739, codex round 18) xarmian 2026-08-23 13:41:13 +00:00
  • 3895fc4f0c test(watchevents): record the startup guard's one unordered window, with the measurement (BUG-2739, codex round 17) xarmian 2026-08-23 13:33:49 +00:00
  • bc6d3541cb refactor(watchevents,docs): order the startup test, move operator prose out of the code (BUG-2739, codex round 16) xarmian 2026-08-23 13:27:16 +00:00
  • d1501d9cf2 fix(watchevents): keep backward detection alive across a coverage drop (BUG-2739, codex round 13) xarmian 2026-08-23 13:11:17 +00:00
  • 2f1896b5fb test(watchevents): a diagnostic that described go-redis behaviour it does not have (BUG-2739, codex round 12) xarmian 2026-08-23 12:58:55 +00:00
  • 988bea658c docs(deployment): state the watch reset metric has no released contract (BUG-2739, codex round 11) xarmian 2026-08-23 12:53:08 +00:00
  • c84418579e docs(watchevents): cost out the malformed-message flood rather than waving at it (BUG-2739, codex round 10) xarmian 2026-08-23 12:50:01 +00:00
  • 720182a445 docs(watchevents): sweep the undecodable overclaim as a class, with its boundary (BUG-2739, codex round 9) xarmian 2026-08-23 12:45:58 +00:00
  • 90f4191b45 docs(watchevents): record why dropCoverage is not counter-gated (BUG-2739, codex round 8) xarmian 2026-08-23 12:38:48 +00:00
  • e7ba44136e test(watchevents,metrics): cover the three behaviours nothing exercised (BUG-2739, codex round 7) xarmian 2026-08-23 12:31:46 +00:00
  • 76aa111e53 docs(metrics,deployment): finish the undecodable wording and answer the label question in the artifact (BUG-2739, codex round 6) xarmian 2026-08-23 12:25:35 +00:00
  • 2e9ace4194 docs: nine overclaims across code, metrics, docs and the CLI (BUG-2739, codex round 5) xarmian 2026-08-23 12:18:41 +00:00
  • c9f0dc60db docs(watchevents): an observer must not call Close either (BUG-2739, codex round 4) xarmian 2026-08-23 12:06:48 +00:00
  • b27407c7ab test(watchevents): wait on the expected reset REASON, and pin the startup control with its mutation (BUG-2739, codex round 3) xarmian 2026-08-23 12:00:41 +00:00
  • 5d5450a43d docs(watchevents,deployment): name the failover cost and the dropped-confirmation road (BUG-2739, codex round 2) xarmian 2026-08-23 11:55:38 +00:00
  • 3b2df81032 docs(deployment): the activity stream cannot detect ID-sequence holes (BUG-2739, codex round 1) xarmian 2026-08-23 11:48:09 +00:00
  • 48d3c90b07 docs(watchevents): score the knownFrom reset honestly — it is defence, not a tested line (BUG-2739) xarmian 2026-08-23 11:39:47 +00:00
  • b24a1bceb9 test(watchevents): close two mutation survivors in the BUG-2739 tests xarmian 2026-08-23 11:38:07 +00:00
  • a3a98b249a fix(watchevents,metrics): unify the reset label on counter_backward (BUG-2739) xarmian 2026-08-23 11:34:34 +00:00
  • 5184aba852 fix(watchevents): detect the two holes the watch bus could not see (BUG-2739) xarmian 2026-08-23 11:34:14 +00:00
  • ff969d23e0 chore(deps)(deps): bump the go-minor-and-patch group across 1 directory with 4 updates (#1180) dependabot[bot] 2026-08-23 08:52:42 -04:00
  • 0ccf178e91 chore(deps)(deps-dev): bump jsdom from 26.1.0 to 29.1.1 in /web (#1141) dependabot[bot] 2026-08-23 08:46:16 -04:00
  • ac0f1180a9 chore(deps)(deps): bump the npm-minor-and-patch group across 1 directory with 17 updates (#1140) dependabot[bot] 2026-08-23 08:28:19 -04:00
  • a1373cfcc3 Merge pull request #1179 from PerpetualSoftware/fix/live-subscriber-gap-honesty xarmian 2026-08-22 23:24:27 -04:00
  • d075b39a73 test(events): the Redis atomicity test now exercises its interleaving (BUG-2730, codex round 20) xarmian 2026-08-23 02:43:28 +00:00
  • 0eb274fed8 test: close the mutation gaps a coverage audit named (BUG-2730, codex round 18) xarmian 2026-08-23 02:32:43 +00:00
  • d6832d6604 docs(bus): state the gap seam's invariant for the third cause (BUG-2730, codex round 17) xarmian 2026-08-23 02:21:58 +00:00
  • d6480c1f02 revert(sse): remove the ordering barrier; its failure mode is worse than the problem (BUG-2730, codex round 16) xarmian 2026-08-23 02:16:35 +00:00
  • 7c03beb24e fix(sse): bound the ordering barrier by a count, not by the channel emptying (BUG-2730, codex round 15) xarmian 2026-08-23 02:09:51 +00:00
  • 3a00783557 fix(sse): queued events go out before the gap announcement (BUG-2730, codex round 13) xarmian 2026-08-23 01:54:43 +00:00
  • fa3710d9da docs: scope the metric correlations to the causes that produce them (BUG-2730, codex round 12) xarmian 2026-08-23 01:46:31 +00:00
  • b3c5ba95f5 style: gofmt the struct-field alignment the new Server field broke xarmian 2026-08-23 01:39:48 +00:00
  • a82bbd6b4f test(server): the rate limit has to be tested where it is BOUND (BUG-2730, codex round 11) xarmian 2026-08-23 01:39:18 +00:00
  • d54f5236e8 docs: say what a client should DO with sync_required (BUG-2730, codex round 10) xarmian 2026-08-23 01:35:51 +00:00
  • 1e839331db fix(events): concurrent publishes must deliver in ID order (BUG-2730, codex round 9) xarmian 2026-08-23 01:31:32 +00:00
  • 8799e7d0cb docs: correct the comments this change made wrong (BUG-2730, codex round 7) xarmian 2026-08-23 01:19:11 +00:00
  • 6ce542782d docs: say what each stream actually detects, not what the pair does (BUG-2730, codex round 6) xarmian 2026-08-23 01:08:43 +00:00
  • b7ae022b6f refactor(events): every way of subscribing hands back the gap signal (BUG-2730, codex round 5) xarmian 2026-08-23 01:01:59 +00:00
  • d936464736 fix(events): bound the mid-stream signal, and stop it moving existing alerts (BUG-2730, codex round 4) xarmian 2026-08-23 00:56:23 +00:00
  • b9dff0072e test: close the coverage gaps codex round 3 named (BUG-2730) xarmian 2026-08-23 00:47:51 +00:00
  • b2277641cf fix(events): a refused connection is not a sync_required (BUG-2730, codex round 1) xarmian 2026-08-23 00:33:35 +00:00
  • db8c5b76ed docs(deployment): sync_required is not only a resume answer (BUG-2730) xarmian 2026-08-23 00:23:21 +00:00
  • 1cee8e615c test(server): the quiet-control leg could not see a gap announced at connect (BUG-2730) xarmian 2026-08-23 00:22:08 +00:00
  • af99762815 test(server): the gap signal must reach the wire, not just the bus (BUG-2730, CONVE-19) xarmian 2026-08-23 00:20:32 +00:00
  • fa2ddf3f22 test(events): pin the drop signal, its metric, and the subscribe-replay atomicity (BUG-2730) xarmian 2026-08-23 00:18:36 +00:00
  • 9f23364b43 test(watchevents): pin both gap-signal scopes with their counterfactuals (BUG-2730) xarmian 2026-08-23 00:16:49 +00:00
  • 4269bdd4cc fix(watchevents): the same hole, told to the stream holding it open (BUG-2730) xarmian 2026-08-23 00:15:19 +00:00
  • b5615cc1b5 fix(events): a live subscriber is told when it has a hole (BUG-2730) xarmian 2026-08-23 00:09:24 +00:00
  • 2a121c32d5 Merge pull request #1178 from PerpetualSoftware/fix/events-idspace-migration xarmian 2026-08-22 18:38:29 -04:00
  • 6e590b48ff docs(events): the straggler window closes per workspace, not globally (BUG-2736) xarmian 2026-08-22 22:05:27 +00:00
  • db7a9317ed fix(events): two mechanisms that were each right alone (BUG-2736) xarmian 2026-08-22 21:55:00 +00:00
  • 53afc2172c fix(events): a generation we cannot vouch for ends coverage, not just the message (BUG-2736) xarmian 2026-08-22 21:38:28 +00:00
  • f3aa86503a fix(events): assign the in-memory id under the lock that orders the buffer (BUG-2736) xarmian 2026-08-22 21:28:04 +00:00
  • a0eb070b00 docs(events): name the mixed-roll straggler window, and assert what bounds it (BUG-2736) xarmian 2026-08-22 21:16:57 +00:00
  • be47896e13 fix(events): hold both wire forms to the same id rule (BUG-2736) xarmian 2026-08-22 21:08:48 +00:00
  • 19f29e1a67 fix(events): the channel is the authority on whose event a message is (BUG-2736) xarmian 2026-08-22 20:58:01 +00:00
  • 1e40c972ae refactor(events): one home for the asymmetry, one assertion for the count (BUG-2736) xarmian 2026-08-22 20:48:58 +00:00
  • 9fe2839cc2 fix(events): an epoch that overflows int64 is corruption too (BUG-2736) xarmian 2026-08-22 20:41:03 +00:00
  • 5f8252ce88 test(events): cover the migration's central claim and three untested branches (BUG-2736) xarmian 2026-08-22 20:34:31 +00:00
  • f243540430 fix(events): three failure paths that lost events without saying so (BUG-2736) xarmian 2026-08-22 20:27:14 +00:00
  • 6afe683389 fix(events): do not arm reset detection where interleave is ordinary traffic (BUG-2736) xarmian 2026-08-22 20:05:48 +00:00
  • 378dec5244 docs(idspace): name the assumption the incarnation bound rests on (BUG-2736) xarmian 2026-08-22 19:54:19 +00:00