Skip to content

Trigger profiles UI polish + engine startup recognition fixes#8

Merged
LordVicky merged 1 commit into
mainfrom
trigger-profiles-ui-polish
Jul 10, 2026
Merged

Trigger profiles UI polish + engine startup recognition fixes#8
LordVicky merged 1 commit into
mainfrom
trigger-profiles-ui-polish

Conversation

@LordVicky

Copy link
Copy Markdown
Owner

Summary

UI

  • Engine status badge moved into the page heading next to the master toggle; Match Source moved into the Editor card header next to Save; standalone status bar row removed (frees vertical space)
  • Editor reordered: L2/R2 trigger settings cards first, Identity & Matching below
  • Profile strip is now responsive: ResizeObservers measure the strip and its action-button block, fitting as many profile chips as actually fit (Default → selected → most recently updated) and collapsing into the "More profiles" dropdown when narrow. Observer attaches on the startup-screen → main-UI transition (with [] deps it ran against null refs and never measured)
  • Pin dropdown replaced with an Auto toggle button: green glow while auto-matching, pins the Default profile when toggled off
  • Removed the "matched" chip badge; editor now follows the engine's auto-matched profile, and re-follows after pin toggles / game restarts

Engine fixes

  • Engine enabled/pin state is now persisted (engine-state.json alongside profiles) and restored at startup. Previously every launch silently started with the game watcher off while the UI still looked like auto mode
  • GameWatcher.start() scans immediately (no debounce), so a game already running when the engine comes up is recognized instantly; the debounce still applies to games launched afterwards

Testing

  • npm run typecheck clean
  • 342 vitest tests pass, including new coverage: dynamic chip budgets, width-observer startup guard, engine-state round-trip + corrupt-file fallback + store listing exclusion, immediate-match-at-start vs debounced-later watcher behavior
  • Hardware-validated on the live AppImage install

🤖 Generated with Claude Code

UI:
- Move engine status into the page heading and match source into the
  editor card header; drop the standalone status bar row
- Reorder editor: trigger slot cards first, identity & matching below
- Make the profile strip responsive: measure strip and action widths
  with ResizeObservers and fit as many chips as space allows, collapsing
  into the overflow dropdown when narrow (observer keyed on the
  startup-screen transition so it actually attaches)
- Replace the Pin dropdown with an Auto toggle button (green glow when
  auto matching, pins Default when toggled off); remove chip 'matched'
  badge
- Editor follows the engine's auto-matched profile, re-following after
  pin toggles and game restarts

Engine:
- Persist engine enabled/pin state to engine-state.json and restore it
  at startup; previously every launch silently started with the game
  watcher off
- GameWatcher.start() now scans immediately (no debounce) so an
  already-running game is recognized as soon as the engine comes up

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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