- `mirror:` was wrong; correct displayplacer param is `mirror_of_display:<uuid>`
- Same fix applied to the strip regex (extend path) and mirror detection check
- Binary lookup now tries resources/bin → /opt/homebrew/bin → /usr/local/bin
so dev/venue Macs with `brew install displayplacer` work without bundling
- Updated TODO_AGENTS.md: marks auto-detection complete, documents one-time
brew install step, bundling path, and optional per-device configStr override
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The handler was a stub that required an explicit configStr — the Svelte
caller never provides one, so mirror/extend silently failed every launch.
Now auto-detects connected displays:
- mirror: parses displayplacer list output, adds mirror:<primary_id> to
secondary display(s); removes any existing mirror key first.
- extend: re-applies current layout if already extended; otherwise strips
mirror keys and computes side-by-side origins from each display's width.
- configStr still takes priority when provided (manual per-device override).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>