Skip to content

release: v2.6.1 — bound app.notify's event history - #245

Merged
wmantly merged 1 commit into
masterfrom
release/v2.6.1
Sep 16, 2026
Merged

wmantly merged 1 commit into
masterfrom
release/v2.6.1

Conversation

@wmantly

@wmantly wmantly commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

Fixed

app.notify grew without bound in any long-lived tab. It subscribes to every model event for the life of the page and appended each one to events, which nothing ever trimmed — the existing cap was on rendered rows, not retained events. Worse, push() calls render(), which re-collapsed the entire array on every event to produce 30 rows. One arriving event cost O(history), on a history that only grew.

Reproduced in theta-directory, where a browser killed the tab at 4GB. The proxy UI loads the same shell (top.ejs) and the same feed, so it carried the same defect — just at a lower event rate.

Fixed upstream in @simpleworkjs/frontend v0.4.3: history capped at maxEvents (1000), and collapse() stops once it has enough groups. Collapsing is strictly local, so rendered rows are byte-identical.

nodejs/package.json said 2.5.3 on a tree released as v2.6.0. The v2.6.0 release commit (96acbe9) updated the changelog and was tagged and released, but never bumped the version field — so the package has been reporting a three-release-stale version. Corrected here rather than left to drift further, which is why this is 2.6.1 and not 2.6.0.

Changed

@simpleworkjs/frontend ^0.4.0 → ^0.4.3. The lockfile had been pinned at 0.4.1, so this also picks up 0.4.2 (notification model icons, foreground toasts, app.notify.clear()) and 0.4.1's app.messages.confirm() fix.

Dependency and version metadata only — no application code changed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TnJ9iEHU6m7kYxD5fXPfts

Picks up @simpleworkjs/frontend v0.4.3.

app.notify subscribes to every model event for the life of the tab and appended
each one to an array nothing ever trimmed, then re-collapsed that whole array on
every new event to render 30 rows -- one arriving event cost O(history), on a
history that only grew. Reproduced in theta-directory, where a browser killed
the tab at 4GB; the proxy UI loads the same shell and the same feed, so it
carried the same defect.

Also corrects nodejs/package.json, which still said 2.5.3 on a tree released as
v2.6.0: that release updated the changelog and was tagged but never bumped the
version field.

The lockfile had been pinned at 0.4.1, so this also picks up 0.4.2 (notification
icons, foreground toasts, app.notify.clear()) and 0.4.1's app.messages.confirm()
fix.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TnJ9iEHU6m7kYxD5fXPfts
@wmantly
wmantly merged commit 7265faf into master Sep 16, 2026
13 checks passed
@wmantly
wmantly deleted the release/v2.6.1 branch September 16, 2026 01:44
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