chore(release): 2.3.2 - #200
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Prepares the 2.3.2 release with metadata and release notes for the recent filler fixes.
Changes:
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.
|
|
||
| - 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. |
|
|
||
| ### 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) |
|
|
||
| ### 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) |
robrigo
force-pushed
the
chore/release-2.3.2
branch
from
August 25, 2026 15:33
df2c7f1 to
55f2d08
Compare
|
|
||
| - 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. |
|
|
||
| ### 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
force-pushed
the
chore/release-2.3.2
branch
from
August 25, 2026 15:41
55f2d08 to
a13105b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.mdentry should have ridden #198 and #199, sinceRELEASING.mdstep 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 maincannot preview until this entry is onmain, which is what the checklist expects, so the preview and the tag both follow this merge. No source changes: the diff is theCHANGELOG.mdentry and thepackage.jsonversion.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.liveby hand, which is exactly the behaviour #199 removes, so releasing 2.3.2 with the old text would contradict its own upgrade note.