Skip to content

Improvements for Redux - #53

Merged
officialMECH merged 27 commits into
release/0.5.2from
chore/store-rewrites
Aug 27, 2026
Merged

officialMECH merged 27 commits into
release/0.5.2from
chore/store-rewrites

Conversation

@officialMECH

Copy link
Copy Markdown

This PR consists of maintenance updates to the Redux store in order to address circular dependency issues and improve some jank implementation details.

General Changes

  • The "Processing Delay" field has been removed in favor of reading the explicit latency from the shared Audio Context, which should provide more reliable sync for playback without needing to guess the necessary offset manually.

Technical Changes

  • All features (actions and reducers) no longer import cross-site actions or selectors for extra reducer effects, which should allow these features to be more easily decoupled and isolated for testing environments.
  • App-level singletons have been refactored to a more streamlined API surface in order to decouple them from the store internals.
  • All middleware and thunks can now directly access singleton instances via extra arguments.
    • New selectors have also been added to access route-level params and context for editor-specific effects.
  • redux-undo was dropped in favor of history-adapter, which allows for a more composable history implementation without needing to import cross-site action types for filtering.
  • The entity adapters for each view are now consolidated into a single slice definition, which was necessary for incorporating history updates across all scoped entities.
  • The storage middleware have been rewritten as a set of strategy-based enhancers, which should make it more viable to sync the storage layer without importing or depending on a manual hydration action for each observer.
  • Real time calculations have been normalized to seconds for better consistency across the app and upstream services.

Bugfixes

  • All actions that jump the cursor position will now always keep the cursor aligned to the current snap precision.

@officialMECH officialMECH added this to the 0.5.2 milestone Aug 27, 2026
@officialMECH
officialMECH merged commit 5c99365 into release/0.5.2 Aug 27, 2026
2 checks passed
@officialMECH
officialMECH deleted the chore/store-rewrites branch August 27, 2026 21:13
officialMECH added a commit that referenced this pull request Sep 11, 2026
* move audio context to singleton

* fix dependency resolution for mdx types

* derive all editor settings from custom info data

* Improvements for Redux (#53)

* refactor storage middleware to strategy-based enhancers

* normalize real time calculation to seconds

* compute audio latency directly from audio context

* add shallow apis (and explicit types) for thunk action creators

* add dedicated apis for matched route selectors

* simplify payloads for atomic update actions/hydrators

* refactor incremental thunk action payload creators

* add declarative types and implicit route accessors for listener middleware

* untangle circular references for storage enhancers

* consolidate beatmap entity slices with colocated history adapters

* normalize reducer paths for slices

* rework file structure for store modules and setup methods

* improve type inference for thunk utils

* move route selectors into store helpers

* improve dependency injection patterns for middleware/thunks

* rework singleton apis to decouple setup modules

* improve type inference for thunk arguments

* add shared utility for meta property action matching

* make filestore source of truth for songs hydration step

* fix regression in property resolution for object placement logic

* move cross-slice selectors out of slice definitions

* reconcile stateful thunk payloads using listener middleware

* consolidate editor lifecycle logic into imperative actions

* revert back to original songs hydrator (for now)

* consolidate audio sample effects into imperative actions

* migrate remaining cross-slice extra reducers into listener middleware effects

* untangle circular references for same-site actions and selectors

* fix element focus priority for prompter

* fix propagations and modifier resolutions for shortcuts

* fix regression in backup middleware to pull original entity state

* only fire navigation for update beatmap form when active route is
deleted

* upgrade bsmap to v3

* bump project version

* hotfix error message display for middleware

* patch bsmap with upstream hotfix

* rework selection by offset logic for quick select

* hotfix entity state for manual save action

* fix save logic to properly handle empty objects

* restore new songs hydrator and reconcile editor data for pre-existing
info files
@officialMECH officialMECH mentioned this pull request Sep 11, 2026
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