Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Happy 2026! - Looking forward to v4.9 update #955

Discussion options

Update Overview - Version 4.9.0

Background

This update has been running on the beta release pipeline for 12+ months.
During this time, we introduced major behind-the-scenes changes and had to adapt to fundamental changes in our framework at the core level.

This substantial feature update brings with it an architectural shift combined with security updates, dependency upgrades, and several major version jumps, all landing in the same cycle.

Yes, this resulted in things like an updater for the updater, and yes, the updater now effectively swaps a motor in a moving car. That’s the reality of keeping legacy systems alive while the platform evolves.

We dealt with major breaking changes and compatibility issues with the legacy system. The new system now incorporates an "updater for the updater, updaterTM" to ensure full backwards compatibility with all previous versions.


What Changed

  • Core framework architecture was redesigned.
  • Update mechanism ensures an uninterrupted update process.
  • Legacy compatibility paths were preserved to avoid locking out older versions.
  • Experimental dashboard optimizations were introduced while keeping the legacy system a selectable option.
  • Multiple previously planned releases were merged into a single coordinated rollout to avoid repeated migrations.
  • Integrates many requested features.

Why It Changed

Maintaining backward compatibility while evolving the platform required us to reimplement features and fixes within the new framework, rather than layering changes on top of the old one.

To make this transition smooth, we intentionally merged multiple planned releases into one continuous update cycle. While this reduced long-term complexity, it also introduced delays as we accounted for:

  • Platform-level changes
  • Generational updates in core dependencies
  • Behavioral parity with legacy systems

In short: doing it once, properly, instead of repeatedly breaking things.


Why It Stayed in Beta

The scope of these changes, combined with their experimental nature at the time, made a stable release premature.

Beta allowed us to:

  • Validate live update behavior under real production load
  • Iterate on experimental features until they matured
  • Avoid rushing a release that would require immediate follow-up patches

This update has effectively been tested in production for the past year.


Current Status

  • The system is mostly stable.
  • Experimental features are now significantly more mature than when first introduced.
  • Legacy behavior is intended to remain unchanged.
  • The update is currently available as a public beta, with the version identifier now moved from beta to pre-release.

Known Limitations

Some issues are known and temporarily classified as wontfixTM for this release:

  • Frontend dependency issues in SPA mode, where certain scripts do not execute correctly on dynamic page loads.

Other issues might come up when we extend our tests to more systems:

  • Incomplete compatibility testing across all historical versions when upgrading from very old releases.

These are understood, scoped, and not expected to cause data loss or system instability.


Update Now

At this point, the main challenge is balancing the old system, which we want to keep unchanged to avoid further delays and protect valuable time and resources, with the new system, which is stable enough to move forward.

We’re ready to take the next step: releasing this as a pre-release for wider testing. Please keep a backup before updating, as we’re still primarily testing updater compatibility. That said, this is the perfect opportunity to try it out, give us feedback, and report any issues you encounter. Real-world testing will help validate stability, identify edge cases, and allow us to start addressing the pull request backlog.

The update can be installed normally by enabling beta mode on the app config page.


Special thanks to @lastsamurai26 and @MattRODriscoll for their integral role in this update.

You must be logged in to vote

Replies: 0 comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
1 participant

AltStyle によって変換されたページ (->オリジナル) /