2735af5fbbfd7cd854367e5a1596be085aa548c4
Replace in-memory atomic AppConfig caching with direct DB queries via db.GetConfig across application and page layers. This simplifies state management and ensures all components always operate on the latest persisted configuration. Key changes: - Remove Application.Config atomic cache and refreshCache mechanism - Eliminate PageCtx.CfgPtr and pass DB handle instead - Replace all cfg reads with db.GetConfig(app.DB) - Update mixer, audio, UI pages, and initialization paths accordingly - Explicitly set AppConfig table name to avoid GORM pluralization issues - Reduce DB connection pooling (SetMaxIdleConns(1)) - Standardize application font to SpaceMonoNerdFont-Regular - Lower default audio volume (1.0 → 0.2) - Add Unicode checkmark glyph to font map Behavioral impact: - Configuration is no longer cached in memory - Every config access now hits the DB (more consistent, slightly more overhead)
Radiantwave & KioskConfig Development & Release Pipeline
Radiant Wave
Full Pipeline Workflow (Detailed)
Development Phase
- Create a new branch for the issue
- Implement the changes for the issue
Integration to dev
- Open a pull request to
dev - CI: Run
nix buildto verify no errors - CI: Run linting and unit tests
- CI: Auto-update
rhemawave-devflake input - CI: Build all
devVMs in parallel (Kiosk, Commercial, RPi) - Merge the pull request to
devafter CI passes
Testing Phase
- Run all VMs (Kiosk, Commercial, RPi) and test all functionality of the application on each VM
- Install
dev-isoto a test machine and verify installation and application functionality
Release to main
- Open a pull request from
devtomain - CI: Build all
mainVMs in parallel (Kiosk, Commercial, RPi) - CI: Build all ISO images in parallel
- CI: Auto-rename ISO images to format
radiantwave-{system}-{YYYY-MM-DD}-{git-hash}.iso - CI: Upload ISO images to file server
- CI: Move old ISO images to
archives/on file server - Merge the pull request to
mainafter CI passes - Tag the release (optional, for traceability)
Automation Opportunities
This section describes which parts of the workflow can be automated via CI/CD, and how.
Group 1: Development Validation (Steps 3-8)
What to automate: PR triggering,nix build, linting, unit tests, flake updates, dev VM buildsHow: GitHub Actions workflow triggered on PR todevWhy: Catch integration errors before manual testing; ensuredevis always buildable
Group 2: Testing (Steps 9-10)
What to automate: VM functionality testing, ISO installation verificationHow: Scripted test suites, automated ISO installation in VMsWhy: Reduce manual toil; increase test coverage and consistency
Group 3: Release Pipeline (Steps 11-16)
What to automate: Main VM/ISO builds, ISO renaming, file server uploads, archivingHow: GitHub Actions workflow triggered on PR tomainWhy: Ensure consistent releases; eliminate human error in naming/uploading
Preflight Checklist
- Create a new branch for the issue
- Implement the changes for the issue
- Open a pull request to
dev - Merge the pull request to
devafter CI passes - Run all VMs (Kiosk, Commercial, RPi) and test all functionality of the application on each VM
- Install
dev-isoto a test machine and verify installation and application functionality - Open a pull request from
devtomain - Merge the pull request to
mainafter CI passes - Tag the release (optional, for traceability)
Automation Task List
Group 1: Development Validation
-
Set up GitHub Actions workflow for PRs to
dev- Configure
nix buildstep - Add linting and unit test steps
- Add flake auto-update step
- Configure parallel VM builds (Kiosk, Commercial, RPi)
- Configure
- Verify workflow blocks PR merge on failure
Group 2: Testing
- Create automated test scripts for VM functionality
- Set up automated ISO installation testing
- Integrate with CI for optional automated testing
Group 3: Release Pipeline
-
Set up GitHub Actions workflow for PRs to
main- Configure parallel VM builds
- Configure parallel ISO builds
- Add ISO auto-renaming step (using
git rev-parse HEADanddate +%Y-%m-%d) - Add file server upload step (
rsyncor similar) - Add archive old ISOs step
- Verify workflow blocks PR merge on failure
Languages
Go
86.1%
Shell
4.9%
Python
4.5%
Nix
2.5%
HTML
1.4%
Other
0.6%