Skip to content

Standardize configuration defaults - #36

Closed
KulmanD wants to merge 4 commits into
mainfrom
refactor/standardize-config-defaults
Closed

Standardize configuration defaults#36
KulmanD wants to merge 4 commits into
mainfrom
refactor/standardize-config-defaults

Conversation

@KulmanD

@KulmanD KulmanD commented Jul 26, 2026

Copy link
Copy Markdown
Owner

What changed

  • renames the machine-specific config file to neutral config/defaults.json
  • resolves maxScrollStep to the compiled value of 8
  • makes the neutral JSON the single editable defaults authority
  • generates target-local CLI and app constants through a development-only Swift script
  • adds CI drift detection for generated constants and complete JSON equality tests
  • bundles the neutral source as Resources/defaults.json without parsing it at runtime
  • preserves existing user config bytes and missing-button disabled behavior
  • updates source/app packaging and ownership documentation

Why

The repository previously shipped a personal filename with maxScrollStep: 5 while both compiled defaults used 8. The app bundled that unused file under another defaults name, creating three places that could drift.

Preliminary footprint

The release helper remains exactly 432,552 bytes, identical in size to the frozen runtime baseline. There is no runtime parser, linked defaults module, resource lookup, timer, thread, or config reread. The first linked-module design was discarded because it added 46,032 bytes.

Testing

  • generator --check
  • local debug and release builds
  • shell syntax checks
  • existing config SHA-256 remains unchanged
  • GitHub Actions, startup timing, strict idle, and fresh archive/app-bundle verification are pending

Limitations and follow-up

Generated Swift files are checked in so normal source builds require no generation step. Contributors changing config/defaults.json must run swift scripts/generate-config-defaults.swift; CI enforces this.

Refs #26

KulmanD commented Jul 26, 2026

Copy link
Copy Markdown
Owner Author

Superseded by draft PR #40, which contains this change, its performance evidence, the complete accepted integration, and passing final CI. Closing this draft without merging avoids duplicate commits. The branch is intentionally retained for isolated comparison and deferred measurements.

@KulmanD KulmanD closed this Jul 26, 2026
@KulmanD
KulmanD deleted the refactor/standardize-config-defaults branch July 27, 2026 12:51
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