Skip to content

fix(config): accept OpenBitFun 1.0 prerelease configurations - #2830

Merged
bobleer merged 1 commit into
GCWing:mainfrom
guantw:fix/prerelease-config-startup
Sep 6, 2026
Merged

bobleer merged 1 commit into
GCWing:mainfrom
guantw:fix/prerelease-config-startup

Conversation

@guantw

@guantw guantw commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Allow valid OpenBitFun 1.0 prerelease configurations to load by applying the product-generation floor to the numeric version core. Add regression coverage for beta/nightly load-save-restart cycles, explicit imports, and account-settings imports.

Related issue: none filed.

Type and Areas

Type: Bug fix / regression test

Areas: Rust core configuration; desktop startup

Motivation / Impact

OpenBitFun 1.0 beta builds persist their actual version, such as 1.0.0-beta.1, but the configuration reader rejects that value as older than OpenBitFun 1.0.0. A configuration written by the application can therefore prevent its next startup or fail an import. The reader now accepts the same product generation across stable and prerelease builds.

Verification

  • cargo test -p openbitfun-core --no-default-features --lib service::config::: 122 passed with source version 1.0.0, and 122 passed with the actual Cargo package version projected to 1.0.0-beta.1.
  • node --test scripts/release-channel.test.mjs OpenBitFun-Installer/scripts/build-installer.test.cjs: 12 passed.
  • build-installer.bat: the complete local Windows release build passed with version 1.0.0-beta.1.
  • Verified the embedded payload against the installer executable and all 1,068 manifest entries by SHA-256; opened the installer UI successfully.
  • Ran the exact extracted desktop payload with isolated storage: fresh startup, settings save, graceful exit, and restart passed; the persisted version remained 1.0.0-beta.1, and language/theme settings survived restart.
  • Confirmed that a 0.9.9 configuration is still rejected without changing its bytes. The existing user configuration remained unchanged.
  • git diff --check: passed.

Reviewer Notes

The product identity, schema, protected metadata, retired-field rejection, and pre-1.0 floor remain enforced. Saves still record the actual package version. Release-channel validation and updater version ordering are unchanged; no configuration migration or reset is introduced.

AI-assisted. Testing level: fully tested for the focused configuration behavior and Windows packaged runtime described above. Installer installation/upgrade actions, macOS/Linux runtime behavior, and live remote workspace, remote control, peer-device, and detached-dispatch scenarios were not exercised. Account-settings import is covered by feature-free Core fixtures.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable (no changes required).

Apply the product-generation floor to the numeric version core so beta and
nightly configurations written by OpenBitFun 1.0 can be loaded and imported.
Keep product identity, schema, pre-1.0 rejection, and actual-version writes
unchanged.

Cover prerelease validation, load-save-restart cycles, explicit imports,
and account-settings imports with focused regression tests.
@bobleer
bobleer merged commit e9633b1 into GCWing:main Sep 6, 2026
13 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