Skip to content

Integration int/m1-wave41

No Date Ruling Reason
INT-W41/0 2026-10-18 M2-07 enters as one squash onto int/m1-wave40 (35d6a9c). The gateway keeps both op sets: focus, typing.start and typing.stop of M1-66 and ack of M2-07 (registered only with a consumer engine); gateway.Deps and wire.GatewayDeps carry the threads, op limiter and publisher of M1-66 beside the consumer engine and agent limiter of M2-07, and mountGateway needs chat and agents. Union of two tickets that each extended the same constructor, handler table and op list; neither changes the other's behaviour.
INT-W41/1 2026-10-18 The hub offers an ephemeral frame (M1-66) to an agent consumer connection (M2-07) only after the consumer runner queued catchup.complete or resync_required (ConsumerEngine.Streaming); test TestEphemeral_ConsumerNotBeforeCatchUpComplete. M2-07 marks a consumer member live at Attach, before its runner caught up, so a focused agent got typing.started before catchup.complete, against the rule of M1-66 that ephemeral frames never precede it.
INT-W41/2 2026-10-18 The lint findings that only the union of M1-66 and M2-07 raises are fixed without a change of behaviour: the op dispatch is the constant opDispatch of gateway/app, ack is decoded in decodeAck beside decodeFocus, and NewGateway picks its publisher in ephemeralPublisher. Each ticket stayed below the goconst and gocognit limits alone; together make lint failed.
INT-W41/3 2026-10-18 TestGatewayOpsEnableList of internal/wire sends stats.subscribe (still under later, M6-15) instead of ack as the op that must close with 4001. M1-66 chose ack as the next disabled op after focus was enabled; M2-07 enables ack, so the union needs another op that is still disabled.