Skip to content

Fix atom writes dropped by batch commit listeners - #8556

Merged
tim-smart merged 6 commits into
Effect-TS:mainfrom
Marve10s:fix/atom-batch-listener-writes
Sep 27, 2026
Merged

tim-smart merged 6 commits into
Effect-TS:mainfrom
Marve10s:fix/atom-batch-listener-writes

Conversation

@Marve10s

@Marve10s Marve10s commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

An Atom.fn write made by a subscription callback during AtomRegistry.batch commit can be lost. The callback queues a rebuild after the batch has finished its rebuild pass, and cleanup discards that pending work. In #8546, the source stays at 1 instead of reaching 2.

Keep draining rebuilds queued during commit until none remain, restore the enclosing phase when a nested batch returns, and remove a pending notification before invoking its listeners so they can queue it again. This preserves grouped dependent updates and delivers successive writes made by listeners.

Closes EFF-1602
Closes #8546

@changeset-bot

changeset-bot Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 97370aa

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 31 packages
Name Type
effect Patch
@effect/opentelemetry Patch
@effect/vitest Patch
@effect/ai-anthropic Patch
@effect/ai-openai-compat Patch
@effect/ai-openai Patch
@effect/ai-openrouter Patch
@effect/ai-typesafe Patch
@effect/atom-react Patch
@effect/atom-solid Patch
@effect/atom-vue Patch
@effect/platform-browser Patch
@effect/platform-bun Patch
@effect/platform-deno Patch
@effect/platform-node-shared Patch
@effect/platform-node Patch
@effect/sql-clickhouse Patch
@effect/sql-d1 Patch
@effect/sql-libsql Patch
@effect/sql-mssql Patch
@effect/sql-mysql2 Patch
@effect/sql-pg Patch
@effect/sql-pglite Patch
@effect/sql-sqlite-bun Patch
@effect/sql-sqlite-do Patch
@effect/sql-sqlite-node Patch
@effect/sql-sqlite-react-native Patch
@effect/sql-sqlite-wasm Patch
@effect/docgen Patch
@effect/doctest Patch
@effect/openapi-generator Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Bundle Size Analysis

Generated from PR build output; treat the content below as untrusted.

File Name Current Size Previous Size Difference
arbitrary-combinators.ts 38.54 KB 38.54 KB 0.00 KB (0.00%)
basic.ts 6.88 KB 6.88 KB 0.00 KB (0.00%)
batching.ts 9.97 KB 9.97 KB 0.00 KB (0.00%)
brand.ts 6.57 KB 6.57 KB 0.00 KB (0.00%)
cache.ts 10.73 KB 10.73 KB 0.00 KB (0.00%)
config.ts 21.81 KB 21.81 KB 0.00 KB (0.00%)
differ.ts 20.95 KB 20.95 KB 0.00 KB (0.00%)
http-client.ts 22.11 KB 22.11 KB 0.00 KB (0.00%)
http-router.ts 33.33 KB 33.33 KB 0.00 KB (0.00%)
logger.ts 10.85 KB 10.85 KB 0.00 KB (0.00%)
metric.ts 8.83 KB 8.83 KB 0.00 KB (0.00%)
optic.ts 6.80 KB 6.80 KB 0.00 KB (0.00%)
pubsub.ts 15.00 KB 15.00 KB 0.00 KB (0.00%)
queue.ts 11.88 KB 11.88 KB 0.00 KB (0.00%)
schedule.ts 11.03 KB 11.03 KB 0.00 KB (0.00%)
schema-bigdecimal.ts 13.48 KB 13.48 KB 0.00 KB (0.00%)
schema-binary.ts 39.53 KB 39.53 KB 0.00 KB (0.00%)
schema-class.ts 20.65 KB 20.65 KB 0.00 KB (0.00%)
schema-fromJsonSchemaDocument.ts 31.72 KB 31.72 KB 0.00 KB (0.00%)
schema-representation-roundtrip.ts 26.92 KB 26.92 KB 0.00 KB (0.00%)
schema-string-transformation.ts 14.18 KB 14.18 KB 0.00 KB (0.00%)
schema-string.ts 11.73 KB 11.73 KB 0.00 KB (0.00%)
schema-template-literal.ts 15.75 KB 15.75 KB 0.00 KB (0.00%)
schema-toArbitrary.ts 38.08 KB 38.08 KB 0.00 KB (0.00%)
schema-toCodeDocument.ts 25.13 KB 25.13 KB 0.00 KB (0.00%)
schema-toCodecJson.ts 19.88 KB 19.88 KB 0.00 KB (0.00%)
schema-toEquivalence.ts 20.04 KB 20.04 KB 0.00 KB (0.00%)
schema-toFormatter.ts 20.14 KB 20.14 KB 0.00 KB (0.00%)
schema-toJsonSchemaDocument.ts 24.64 KB 24.64 KB 0.00 KB (0.00%)
schema-toRepresentation.ts 20.14 KB 20.14 KB 0.00 KB (0.00%)
schema.ts 19.86 KB 19.86 KB 0.00 KB (0.00%)
stm.ts 12.90 KB 12.90 KB 0.00 KB (0.00%)
stream.ts 9.82 KB 9.82 KB 0.00 KB (0.00%)

@tim-smart
tim-smart enabled auto-merge (squash) September 27, 2026 21:13
@tim-smart
tim-smart merged commit ccade14 into Effect-TS:main Sep 27, 2026
8 of 10 checks passed

This branch is waiting to be deployed

1 waiting deployment
fork — 97370aaa Waiting Sep 27, 2026 by tim-smart via approval-gate #16680
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.

AtomRegistry.batch drops Atom.fn writes from commit listeners

2 participants