Skip to content

Nothing listens on another seat's behalf, so the minter subscribes to nothing (comms-g5zh.7) - #213

Merged
GraemeF merged 1 commit into
mainfrom
comms-g5zh.7
Jul 31, 2026
Merged

GraemeF merged 1 commit into
mainfrom
comms-g5zh.7

Conversation

@GraemeF

@GraemeF GraemeF commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

The minter subscribed to every public stream so it could receive on behalf of a seat that had not yet minted, kept current by a boot-time reconciler. With the events queue (#209) and the channel subscriptions (#211, #212) both registered under the seat's own principal, no seat receives through another — and that layer has nothing left to do.

The minter keeps the jobs that are its own: minting bots, and the directory and history reads that need no principal.

Removed

  • packages/zulip/minter-reconciler.ts and its tests.
  • reconcileMinterSubscriptions from the Zulip adapter's shape, its wiring, and its response schema.
  • The boot-time reconcile call in the plugin's main, and its logging.
  • The no-op stub in the above-port test seam.
  • The adapter and server.test.ts tests covering the deleted capability. lazy mode does NOT mint at boot when COMMY_SUBSCRIBE is unset already asserts the property that matters — a seat that never mints subscribes to nothing.

Corrected
Prose that described the retired arrangement: tools.ts still claimed subscribe registered the minter for post-boot streams (it has gone out on the seat's own credential since #211), the adapter's per-event filter named the minter's subscription list, and the client README's boot diagram opened with the reconcile step. docs/agent-experience.md now reads as the worked example predicted: topic narrows and the event-queue handle are what remain client-side, both filtering the agent's own queue.

Pure subtraction — no new capability, no shims. Subscription reconstruction (comms-70g4) is downstream of this, not part of it.

https://claude.ai/code/session_01P67vRP5hs9Yvo16vkWru4g

… nothing (comms-g5zh.7)

The minter subscribed to every public stream so it could receive on behalf
of a seat that had not yet minted, kept current by a boot-time reconciler.
With the events queue and the channel subscriptions both registered under
the seat's own principal, no seat receives through another, and that layer
has nothing left to do.

The minter keeps the jobs that are its own: minting bots, and the directory
and history reads that need no principal.

Deletes `minter-reconciler.ts`, its `reconcileMinterSubscriptions` wiring in
the Zulip adapter, the boot call in the plugin's `main`, and the covering
tests — the capability they cover is gone with it. The prose that described
the arrangement (`tools.ts`, `agent-experience.md`, the client README, the
adapter's per-event filter) now describes what the code does.

A seat that never mints costs the realm nothing.
@GraemeF
GraemeF merged commit fa9296d into main Jul 31, 2026
2 checks passed
@GraemeF
GraemeF deleted the comms-g5zh.7 branch July 31, 2026 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant