You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of #169.
- Add a package-private provider/scope epoch gate so catalog responses
and invalidations cannot publish against mixed catalog state.
- Share one subscription per scope with two-phase membership activation,
single-use authenticated captures, monotonic arbitration, and exact
revision fan-out.
- Bound callback storms, FIFO admissions, memberships, scopes, and
reentrant provider cleanup with fail-closed quarantine.
- Retire failed targets atomically and sever provider/session closure
graphs before external cleanup or retained-handle disposal.
- Record the lifecycle, ordering, and resource contracts in ADR 0005.
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Introduces a catalog epoch coordinator that gates responses and
invalidations per scope to prevent mixed catalog state and ensure
deterministic revision fan‑out, and isolates hostile cleanup promises.
Part of #169.
- **New Features**
- One subscription per scope with two‑phase membership and
authenticated, single‑use epoch captures.
- Monotonic arbitration and exact revision fan‑out across sessions
sharing a scope.
- Bounds for callback storms and cleanups, FIFO admissions, and
fail‑closed quarantine for misbehavior.
- Drains async provider/session cleanup settlement, isolates hostile
cleanup promises, and atomically retires failed targets with
reentrant‑safe cleanup.
- Updated ADR‑0005 to document lifecycle and ordering; added extensive
tests and a benchmark with `bench:catalog-coordinator`.
- **Migration**
- `SqlRelationCatalogProvider.subscribe` now returns a this‑free cleanup
function `SqlCatalogSubscriptionCleanup` (may be async) instead of a
`SqlDisposable`; update providers to return `() => void |
PromiseLike<void>`.
- `SqlDisposable.dispose` is now this‑free: change to `dispose(this:
void): void` and avoid using `this` inside dispose.
<sup>Written for commit 3d66bd4.
Summary will update on new commits.</sup>
<a
href="https://cubic.dev/pr/marimo-team/codemirror-sql/pull/193?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>
<!-- End of auto-generated description by cubic. -->
0 commit comments