Commit Graph

105 Commits

Author SHA1 Message Date
Peter Steinberger f9d9d1225a refactor(channels): own the lifecycle status contract in SDK patch factories (#118795)
* refactor(sdk): add channel lifecycle patch factories

* refactor(channels): adopt lifecycle patches in a-m

* refactor(channels): adopt lifecycle patches in n-z

* refactor(runtime): lifecycle-own ambient registries

* test(slack): assert lifecycle factory fields

* fix(sdk): preserve lifecycle patch extras types

* test(zalouser): widen lifecycle status sink

* test(irc): avoid shadowed status patch

* fix(zalo): reuse account-agnostic media route

* fix(gateway): accept explicit channel ready recovery

* test(qa): assert terminal Slack block fact

* test(qa): restore Slack blocked lifecycle scenario

* test(gateway): lock explicit lifecycle recovery contract
2026-08-03 12:39:48 -07:00
Peter Steinberger 628672aaa1 test(buzz): consolidate lifecycle fixtures (#118316) 2026-08-02 19:42:22 -07:00
Peter Steinberger 0c32879d45 feat(channels): publish recorded lifecycle from bundled channel transitions (#118110)
* feat(channels): publish recorded lifecycle from bundled channel transitions

* chore: remove lifecycle changelog entry
2026-08-02 13:04:49 -07:00
Shakker c60887bd73 fix: refresh Buzz room targets after reconnect (#117927) 2026-08-02 10:30:32 +01:00
Shakker 6129fbf784 fix: invalidate removed Buzz mention members 2026-08-02 10:30:32 +01:00
Shakker c2d6ecee3c fix: align Buzz explicit mention semantics 2026-08-02 10:30:32 +01:00
Shakker 1b8c99fa4e test: split Buzz mention delivery coverage 2026-08-02 10:30:32 +01:00
Shakker ea099cfdf7 fix: preserve Buzz reply session threads 2026-08-02 10:30:32 +01:00
Shakker 3de2a752f5 refactor: keep Buzz mention helpers internal 2026-08-02 10:30:32 +01:00
Shakker d4490c6a9d fix: invalidate stale Buzz room targets 2026-08-02 10:30:32 +01:00
Shakker f4e332a72e fix: tighten Buzz mention disambiguation 2026-08-02 10:30:32 +01:00
Shakker 6d7e371b0e perf: keep Buzz plain sends on the fast path 2026-08-02 10:30:32 +01:00
Shakker fe6960342f fix: reject unresolved Buzz mention text 2026-08-02 10:30:32 +01:00
Shakker 4c6e1f0d4c fix: resolve non-ASCII Buzz member mentions 2026-08-02 10:30:32 +01:00
Shakker c8d5d8ea34 fix: satisfy strict Buzz mention resolution 2026-08-02 10:30:32 +01:00
Shakker 0ee44d551a feat: guide Buzz room targeting and mentions 2026-08-02 10:30:32 +01:00
Shakker 12b924c4d0 test: cover Buzz mention boundaries 2026-08-02 10:30:32 +01:00
Shakker 09bdcf3eb1 fix: resolve Buzz mentions on reply delivery 2026-08-02 10:30:32 +01:00
Shakker 8fb9dcd54e feat: emit native Buzz mention tags 2026-08-02 10:30:32 +01:00
Shakker c4d355133f feat: resolve Buzz room member mentions 2026-08-02 10:30:31 +01:00
Patrick Erichsen 213b43ff03 fix(channels): preserve human group session titles (#117680) 2026-08-01 17:00:04 -07:00
Peter Steinberger 568ea29d2e refactor(plugins): inherit shared package boundary settings (#117474) 2026-08-01 09:11:09 -07:00
Ayaan Gazali 11069c3df5 fix(channels): config validation rejects documented channels.<id>.configWrites on 13 channels (#117206) 2026-08-01 15:33:16 +08:00
Vincent Koc 6922ddd936 fix(qa): isolate runner discovery facades (#117203) 2026-08-01 13:40:11 +08:00
Yuval Dinodia e8d546c8da fix(buzz): reconnect silently skips retained inbound messages (#116925)
* fix(buzz): page reconnect history instead of dropping older messages

On reconnect the Buzz gateway asked the relay for a single capped page of
room history and treated EOSE as a complete recovery. Any backlog larger
than the per-room replay limit was never requested again, so those messages
never reached handleBuzzInbound, the agent, or the session transcript, and
nothing reported the loss.

The room subscription now records how much history its first page returned
and, when that page filled the limit, pages older history through the relay
until it is exhausted. Each page is dispatched through the existing bounded
replay queue and the next page waits for queue capacity, so recovery stays
memory bounded. A room whose backlog cannot be paged past a single
timestamp is now reported instead of dropped silently.

Membership tracking moves to room-membership-tracker.ts because buzz-bus.ts
was already at the 700 line ceiling.

* fix(buzz): hold dispatch capacity while a history page is in flight

Catch-up asked the replay queue whether capacity existed and then issued the
relay query, but nothing held those slots. Live room events arriving while
the query was in flight could consume them, so admitting the page afterwards
could report overflow, which closes the dispatch queue and drops every
queued message before forcing a reconnect. A busy room with slow inbound
handlers could repeat that instead of finishing recovery.

Capacity is now reserved rather than sampled. reserveCapacity resolves with a
reservation that owns its slots until released, page events are admitted
through that reservation, and the reservation is released once the page is
enqueued. Live enqueues keep the full pending limit and are never rejected
earlier because a reservation is outstanding. An overflow reported through a
reservation means the relay exceeded the page it was asked for, so it is
reported as a history error instead of tearing down the session.

* fix(buzz): bound reconnect history pages

* fix(buzz): preserve replay reservations

* test(buzz): cover catch-up settlement paths

* fix(buzz): drain saturated history ranges

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-01 08:28:03 +08:00
Peter Steinberger 9e4381eb1c refactor(channels): unify bundled channel setup contracts (#117106)
* refactor(channels): canonicalize bundled setup contracts

* test(matrix): use scoped environment fixtures
2026-07-31 16:57:29 -07:00
Shakker c5979d05ef fix: repair Buzz plugin packaging (#116865)
Restore standalone Buzz npm and ClawHub packaging by using the shipped QA runner SDK surface and generated dependency lock workflow.

Prepared head SHA: 58d0a52c61
Co-authored-by: Shakker <165377636+shakkernerd@users.noreply.github.com>
Reviewed-by: @shakkernerd
2026-07-31 15:32:16 +01:00
Shakker 5cd00cfbaa fix: reserve Buzz relay subscription capacity (#116799) 2026-07-31 13:40:34 +01:00
Shakker a382e6be8a fix: retain Buzz metadata changes during startup 2026-07-31 13:40:34 +01:00
Shakker ec72e23984 fix: resolve Buzz directory CI failures 2026-07-31 13:40:34 +01:00
Shakker 429e83bd23 fix: exclude archived Buzz rooms from peer snapshots 2026-07-31 13:40:34 +01:00
Shakker 8f3c611951 fix: reconnect Buzz rooms after membership notifications 2026-07-31 13:40:34 +01:00
Shakker b3c4ea0291 docs: explain Buzz archived room handling 2026-07-31 13:40:34 +01:00
Shakker bfa0b7e607 test: cover Buzz archived room subscription changes 2026-07-31 13:40:33 +01:00
Shakker ac63627114 fix: rebuild Buzz subscriptions after room archive changes 2026-07-31 13:40:33 +01:00
Shakker 34f815e395 fix: exclude archived Buzz rooms from discovery 2026-07-31 13:40:33 +01:00
Shakker 08ac5b987f fix: cancel Buzz turns during reconnect 2026-07-31 13:40:33 +01:00
Shakker ed8ba5c6bb fix: drain Buzz replay work before reconnect 2026-07-31 13:40:33 +01:00
Shakker 132e39bff6 fix: bound Buzz replay dispatch 2026-07-31 13:40:33 +01:00
Shakker dcf09b5089 fix: avoid duplicate Buzz subscription closes 2026-07-31 13:40:33 +01:00
Shakker f94aa3aa9d fix: bound Buzz reconnect history 2026-07-31 13:40:33 +01:00
Shakker c307ee1544 test: normalize Buzz abort rejection reasons 2026-07-31 13:40:33 +01:00
Shakker e260dfd0ed refactor: keep Buzz profile subscriptions immutable 2026-07-31 13:40:33 +01:00
Shakker da0428526f test: type Buzz subscription stubs safely 2026-07-31 13:40:33 +01:00
Shakker 137c2d8d8a refactor: share Buzz inbound kind checks 2026-07-31 13:40:33 +01:00
Shakker 60c81f3f0a refactor: keep Buzz relay session type private 2026-07-31 13:40:33 +01:00
Shakker 8879fc4cd0 fix: bound Buzz profile synchronization 2026-07-31 13:40:33 +01:00
Shakker befa225e3f fix: bound Buzz profile subscription readiness 2026-07-31 13:40:33 +01:00
Shakker fe3f1983cc fix: reconnect after Buzz directory stalls 2026-07-31 13:40:33 +01:00
Shakker f1e049b086 fix: bound Buzz relay session setup 2026-07-31 13:40:33 +01:00