Skip to content

chore(release): 2.3.2 - #200

Merged
robrigo merged 1 commit into
mainfrom
chore/release-2.3.2
Aug 25, 2026
Merged

chore(release): 2.3.2#200
robrigo merged 1 commit into
mainfrom
chore/release-2.3.2

Conversation

@robrigo

@robrigo robrigo commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Why

Cuts 2.3.2, carrying the two filler fixes that landed after 2.3.1 and the README diagnostics that came out of the same investigation.

The CHANGELOG.md entry should have ridden #198 and #199, since RELEASING.md step 1 puts the entry in the PR that makes the change. It did not, so it lands here with the version bump rather than not at all.

Validation

scripts/release-notes.sh 2.3.2 main cannot preview until this entry is on main, which is what the checklist expects, so the preview and the tag both follow this merge. No source changes: the diff is the CHANGELOG.md entry and the package.json version.

The README troubleshooting entry rides this commit as well. It told an operator to check whether a reader was stuck in head mode and to clear contract_readers.live by hand, which is exactly the behaviour #199 removes, so releasing 2.3.2 with the old text would contradict its own upgrade note.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prepares the 2.3.2 release with metadata and release notes for the recent filler fixes.

Changes:

  • Bumps the package version to 2.3.2.
  • Adds upgrade guidance and summaries for #197#199.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
package.json Updates the release version.
CHANGELOG.md Adds the 2.3.2 release entry.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread CHANGELOG.md Outdated

- Image `ghcr.io/atomicassets/atomicassets-api:2.3.2`. The `2.3` and `latest` tags move to it.
- The migration set is unchanged from 2.0.0, so the filler performs no database work on boot.
- A reader now starts in catchup mode on every start and promotes itself to head mode on the first block that is within twice `db_group_blocks` of the head. A reader that is genuinely at head reaches head mode on its first block, ahead of that block's commit and of its notifications, so a caught-up filler behaves as before. `contract_readers.live` is still written and `reconcile` still reads it, but nothing derives behaviour from it.
Comment thread CHANGELOG.md Outdated

### Bug fixes

- The filler abandoned its `state_history` websocket instead of closing it when it left through `process.exit(1)`, which is the path an unhandled rejection, an uncaught exception, and both watchdog timers take. A node holds a half-open session until it works out the peer is gone, so a filler restarted straight after a crash opened a second session beside the stale one. Both watchdog paths now take the graceful stop, whose close frame goes out during the pause they already had, and the crash handlers send the frame and exit on a short fixed timer. (#198)
Comment thread CHANGELOG.md

### Other changes

- `README.md` records what the filler's progress line means, so a slow catch-up can be told apart from a starved `state_history` feed without guesswork: what `DS`, `SH` and `W/s` measure, that the queue depths only discriminate while the in-flight window is larger than one, and what the throughput keys in `readers.config.json` do against the values a mainnet deployment runs. (#197)

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

Comment thread CHANGELOG.md Outdated

- Image `ghcr.io/atomicassets/atomicassets-api:2.3.2`. The `2.3` and `latest` tags move to it.
- The migration set is unchanged from 2.0.0, so the filler performs no database work on boot.
- A reader now starts in catchup mode on every start and promotes itself to head mode on the first block that is either reversible or within twice `db_group_blocks` of the head. Every block at the head of the chain is reversible, so a reader that is genuinely at head reaches head mode on its first block, ahead of that block's commit and of its notifications, and a caught-up filler behaves as before. `contract_readers.live` is still written, and `reconcile` still refuses to run against a reader whose flag is set and whose row is fresh. What changed is only that the reader no longer derives its processing state from it.
Comment thread CHANGELOG.md Outdated

### Bug fixes

- The filler abandoned its `state_history` websocket instead of closing it when it left through `process.exit(1)`, which is the path an unhandled rejection, an uncaught exception, and both watchdog timers take. Both watchdog paths now take the graceful stop, whose close frame goes out during the pause they already had, and the crash handlers send the frame and exit on a short fixed timer. What a node does with a socket that was abandoned rather than closed is its own business, and no claim is made here about it. (#198)
The README troubleshooting entry rides this commit rather than its own,
because shipping 2.3.2 with the old text would contradict the release it
belongs to. That entry told an operator to check whether a reader was
stuck in head mode and to clear contract_readers.live by hand, which is
exactly the behaviour 2.3.2 removes. It now describes what a reader does
from this version, and keeps the old shape only as the reason a reader
from before it could be stuck.

The changelog entry claims less than its first draft did. The socket fix
says what the filler stopped doing and makes no claim about what a node
does with an abandoned socket, which was inference rather than something
measured. The upgrade note names the reversible-block half of the
promotion condition, and records that reconcile still refuses a live and
freshly updated reader, since only the reader's own processing state
stopped deriving from that flag.

Signed-off-by: Rob Konsdorf <rob@facings.io>
@robrigo
robrigo force-pushed the chore/release-2.3.2 branch from 55f2d08 to a13105b Compare August 25, 2026 15:41
@robrigo
robrigo merged commit 76baf46 into main Aug 25, 2026
7 checks passed
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.

2 participants