Commit Graph
204 Commits
Author SHA1 Message Date
NeilClack bb132ceeaf fix: resolve 4 critical audio mixer bugs (v0.5)
- SwitchDevice volume silently zeroed: Init uses cfg.SavedVolume,
  SwitchDevice restores saved volume after reopening device
- SwitchDevice not persisted to database: caller saves SelectedAudioDevice
- Device restore passes invalid 'system default' to SDL: now passes ''
- Stop() no-op when audio toggled off: removed AudioEnabled guard

Regression tests added for all 4 bugs. CI now runs go test before build.
2026-07-11 11:39:58 -05:00
NeilClack 72910e7006 fix: prevent Play() deadlock when device is not open
Play() held mu then called SwitchDevice() which also tried to acquire mu,
causing a deadlock. Replace with direct call to openDeviceLocked() which
does not lock.

Add regression test that verifies Play() returns an error (not deadlock)
when called on an uninitialized mixer.
2026-07-11 10:16:15 -05:00
NeilClack 141613f571 Update version string to indicate audio-bug-fixes 2026-07-11 09:01:05 -05:00
NeilClack fca6354829 Create Docker build pipeline for MacOS 2026-07-10 17:12:48 -05:00
NeilClack 313db8ccd1 fix: rewrite cmd_diagnose to use script upload instead of nested SSH quoting 2026-07-10 16:02:02 -05:00
NeilClack b88caa291d feat: test VM build/run script with SSH diagnostics
- nixos/vm.nix: enable PasswordAuthentication for kiosk user (SSH test access)
- scripts/test-vm.sh: one-command build → start → diagnose workflow
  - macOS: builds and runs on remote Linux server, SSH through server
  - Linux: builds and runs locally
  - Commands: --build, --start, --stop, --diagnose, --shell
  - Diagnostics: NetworkManager, PipeWire, wpctl, ALSA, pactl, processes, logs
- AGENTS.md: compact agent guide for the repo
2026-07-10 15:37:32 -05:00
NeilClack 779bc77c5b fix: use recursiveUpdate instead of // to preserve packages.default
The // operator does shallow merge, so packages.x86_64-linux.test-vm
overwrote the entire packages.x86_64-linux attrset, losing the default
package. nixpkgs.lib.recursiveUpdate properly merges nested attrsets.
2026-07-10 14:18:47 -05:00
NeilClack 3e3c174032 feat: expose test-vm as a package output for remote building 2026-07-10 14:15:46 -05:00
NeilClack 68b3680e32 fix: make wayland/X11 buildInputs Linux-only for macOS dev shell
wayland, wayland-protocols, libxkbcommon, libdecor, libx11, libxext
are Linux-only and prevent nix develop from working on macOS.
2026-07-10 14:00:48 -05:00
NeilClack 9bc0fd6820 fix: restore SDL volume to MAX after device switch
Remove dead 'currentVolume' variable that was never written to, causing
SwitchDevice to always restore volume to 0 after switching audio devices.

- Remove currentVolume from package state
- SwitchDevice now sets mix.MAX_VOLUME after reopening device
- GetVolume128 now queries SDL directly instead of reading stale variable
- Fix parseSinkLine not stripping trailing ']' from [vol: X.XX] (caused
  volume to silently parse as 0 for sinks without MUTED tag)
- Fix flake.nix: make wayland/X11 buildInputs Linux-only for macOS compat
- Add unit tests for parseSinks, parseSinkLine, and ConvertVolume
- Add changelog.txt tracking all audio bug fixes
2026-07-10 14:00:33 -05:00
NeilClack 2bcb36669f fix: restore SDL volume to MAX after device switch
Remove dead 'currentVolume' variable that was never written to, causing
SwitchDevice to always restore volume to 0 after switching audio devices.

- Remove currentVolume from package state
- SwitchDevice now sets mix.MAX_VOLUME after reopening device
- GetVolume128 now queries SDL directly instead of reading stale variable
- Add unit tests for parseSinks, parseSinkLine, and ConvertVolume
- Add changelog.txt tracking all audio bug fixes
2026-07-10 13:56:06 -05:00
NeilClack fd10201f75 Merge pull request 'Fix network connection timeouts and security detection' (#59) from wifi-fix-06-28-2026 into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/59
2026-06-28 09:07:10 +02:00
NeilClack e7041894ba Merge pull request 'Fix network connection timeouts and security detection' (#59) from wifi-fix-06-28-2026 into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/59
2026-06-28 02:04:52 -05:00
NeilClack 193ebbcb27 Fix network connection timeouts and security detection
- Fixed detectSecurity() where WPA2 (0x100/PSK) and WPA3 (0x400/SAE)
  flags were swapped, causing NM to reject connections silently
- Added missing AP path to AddAndActivateConnection call
- Added critical connection settings: UUID, interface-name,
  autoconnect, permissions
- Changed init() to fail fast with logger.Fatal instead of
  silent failure on NM connection error
- Added auth-alg and psk-flags to WPA/WPA2 security settings
2026-06-28 01:56:35 -05:00
NeilClack 1a5f017006 Merge pull request 'cant-connect-to-wifi' (#58) from cant-connect-to-wifi into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/58
2026-06-28 00:09:43 +02:00
NeilClack 3bcfce2617 use logger instead of printf 2026-06-27 17:06:14 -05:00
NeilClack 8567cd5bdb add extra case to waitForConnection 2026-06-27 17:04:34 -05:00
NeilClack b0947bd594 Fix bugs in WiFi page 2026-06-27 16:51:18 -05:00
NeilClack 97babaa1b2 Merge pull request 'Update Network package' (#57) from no-text-input-for-wifi-password into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/57
2026-06-27 23:07:04 +02:00
NeilClack 7e598f191f Update Network package 2026-06-27 16:01:33 -05:00
NeilClack 6f672b6f0b Merge pull request 'Remove wal and shm deletion' (#55) from no-text-input-for-wifi-password into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/55
2026-06-27 22:12:11 +02:00
NeilClack ba39ed85a9 Remove wal and shm deletion 2026-06-27 15:09:51 -05:00
NeilClack 9accf06b03 Merge pull request 'Log the app config in Debug' (#54) from no-text-input-for-wifi-password into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/54
2026-06-27 21:53:09 +02:00
NeilClack 8ec1cbbc48 Log the app config in Debug 2026-06-27 14:50:50 -05:00
NeilClack bcb23d2591 Merge pull request 'Create missing audio directory' (#53) from no-text-input-for-wifi-password into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/53
2026-06-27 21:29:15 +02:00
NeilClack 0b43a98298 Remove unused function in download package 2026-06-27 14:25:51 -05:00
NeilClack 2c88b7ffc5 Add creation of audio directory and remove unused function in download package 2026-06-27 14:25:25 -05:00
NeilClack a30f598354 Merge pull request 'Add production workflow and clean up development workflow' (#52) from no-text-input-for-wifi-password into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/52
2026-06-27 21:06:10 +02:00
NeilClack fce5286d86 Add production workflow and clean up development workflow 2026-06-27 14:04:07 -05:00
NeilClack f9cf735e10 Merge pull request 'Fix download progress and prevent re-downloading existing audio.' (#51) from no-text-input-for-wifi-password into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/51
2026-06-27 21:02:12 +02:00
NeilClack f00cb9efb6 Fix download progress and prevent re-downloading existing audio. 2026-06-27 13:59:22 -05:00
NeilClack 3b8926f89e Merge pull request 'Remove calls to RefreshConfig' (#50) from no-text-input-for-wifi-password into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/50
2026-06-27 19:59:42 +02:00
NeilClack 18c57c9101 Remove calls to RefreshConfig 2026-06-27 12:57:29 -05:00
NeilClack 9ea29efa72 Merge pull request 'add debug log' (#49) from no-text-input-for-wifi-password into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/49
2026-06-27 19:33:11 +02:00
NeilClack cc7917b549 add log statement to debug crash in dev system 2026-06-27 12:30:35 -05:00
NeilClack 9fc72e0094 Move noisy logs to debug 2026-06-27 12:30:23 -05:00
NeilClack 10d802e4e5 Merge pull request 'Update version string for validation' (#48) from no-text-input-for-wifi-password into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/48
2026-06-27 18:46:46 +02:00
NeilClack ca18000c8e Update version string for validation 2026-06-27 01:47:06 -05:00
NeilClack d9920b3615 Merge pull request 'no-text-input-for-wifi-password' (#47) from no-text-input-for-wifi-password into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/47
2026-06-27 08:38:45 +02:00
NeilClack 01b462fc74 Add visual queue to check updates are performed 2026-06-27 01:32:24 -05:00
NeilClack 91f3afd517 Potentially fixed text input on kiosk machine 2026-06-27 01:08:55 -05:00
NeilClack ec6a509265 Merge pull request 'Replace textInputSupported flag' (#45) from no-text-input-for-wifi-password into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/45
2026-06-27 07:39:11 +02:00
NeilClack 2fac3ab6a8 Replace textInputSupported flag 2026-06-27 00:37:07 -05:00
NeilClack 16ae451686 Merge pull request 'Major refactor in attempt to resolve many issues across the application.' (#44) from issues-6-26-2026 into dev
Reviewed-on: https://codeberg.org/RhemaWave-Technologies/RhemaWave/pulls/44
2026-06-27 06:43:13 +02:00
NeilClack 57fe627ad0 Update workflow to run on pull_requests rather than pushes 2026-06-26 23:38:37 -05:00
NeilClack 3ef8f3db92 Resolve empty config issue 2026-06-26 23:35:29 -05:00
NeilClack 6274687fe8 Fix loading empty config 2026-06-26 23:21:05 -05:00
NeilClack 2735af5fbb refactor: remove cached AppConfig pointer and read configuration directly from DB
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)
2026-06-26 22:51:32 -05:00
NeilClack 6fd5ec919c fix(db): stabilize connection settings and explicitly define AppConfig table name
- Set SQL connection idle limit to 1 to reduce resource usage
- Explicitly define AppConfig table name to prevent GORM pluralization issues
2026-06-26 22:49:51 -05:00
NeilClack f03d56d7ad Update vendor directory 2026-06-26 18:41:01 -05:00