61 Commits
Author SHA1 Message Date
baketnk f43848731b Use controller-tagged compositor scroll for grab depth 2026-10-04 22:03:33 -04:00
baketnk fe8726864e Keep installed model-status checks from modifying release inventories 2026-10-04 21:53:48 -04:00
baketnk 0681d4941a Explain missing X display when the focus guard refuses Type 2026-10-04 21:48:06 -04:00
baketnk b3a9d39482 Pin release installer and accept clean tagged version output 2026-10-04 21:44:18 -04:00
baketnk bcd330d42c Finish companion controls and retain panel textures during manipulation 2026-10-04 21:43:55 -04:00
baketnk b0767d1b36 Merge remote-tracking branch 'origin/main' 2026-10-04 21:39:15 -04:00
baketnk c0176b8595 Preserve verified Redux model cards across revision upgrades 2026-10-04 21:16:22 -04:00
bod09andClaude Opus 5.5 bbbd31fa6d Repin Parakeet Redux to the current upstream revision
moondream/parakeet-redux was rewritten upstream on 2026-09-23 to a single
commit (2bf128600aac), so the pinned revision fad622f no longer resolves.
model.safetensors still downloads from the old revision, but config.json,
ternary.json, tokenizer.json and README.md return HTTP 404, which makes
`install.sh --install-model` fail.

The weights, config, ternary map and tokenizer at 2bf1286 have the same
size and SHA-256 as the old pins, so the model itself is unchanged. Only
the model card README.md differs (8533 -> 8832 bytes), so its pin is
updated along with the revision.

Fixes #1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 19:05:06 +01:00
baketnk eb054199e1 Add opt-in Settings release check and attended update handoff 2026-09-28 18:50:38 -04:00
baketnk dd164aacee Scroll review text and launch installed companion overlays 2026-09-28 18:30:14 -04:00
baketnk 4b0b29700d Persist per-mount wrist and head placement after drag 2026-09-26 23:41:13 -04:00
baketnk 8f4c1877f7 Make wrist fallback optional and scroll Settings with laser 2026-09-26 23:17:13 -04:00
baketnkandClaude Opus 5.5 0f36a45358 Add Settings -> About screen with version, license and credits
Static page: build version (with git commit when untagged/dirty), source URL,
MIT license, selected model's manifest license, font license and a pointer to
docs/third-party.md. Recording controls stay live; Settings returns.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 23:02:22 -04:00
baketnkandClaude Opus 5.5 9ec5dd03ba Fix paced delivery stopping after the first 24-codepoint chunk
Gamescope rewrites GAMESCOPE_FOCUSED_WINDOW (same window) after an IME
commit. The focus guard treated any PropertyNotify on the root focus
properties as a focus change, so every paced delivery stopped after its
first chunk. Re-read the property and fail only when it names a
different window; real X focus moves still fail via FocusOut, and every
check still re-validates both properties and X input focus.

Diagnosed from delivery-debug.log on Frame:
  sent offset=0 bytes=24
  focus invalid: GAMESCOPE_FOCUSED_WINDOW changed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 22:49:52 -04:00
baketnkandClaude Opus 5.5 f5b4371f4a Release v0.1.202609251506
Pin the installer to this release; README documents the curl | sh install.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 11:07:43 -04:00
baketnkandClaude Opus 5.5 4cbeff08d4 release: add ARM64 release build script; installer knows its pinned release
- scripts/build-release.sh WORKDIR VERSION fetches SHA-256-pinned SDL3
  3.2.16 and OpenVR SDK 2.15.6, builds audio-only SDL3 and FrameYap, runs
  the tests, then stages and packages an external-runtime archive.
- RELEASE_VERSION (set in a tagged release commit) makes the attended
  installer ask only y/n: install this release from GitHub, the speech
  model, the CPU runtime. Flag-driven binary installs default to it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 11:06:50 -04:00
baketnkandClaude Opus 5.5 e6cb07e8b8 installer: attended curl|sh flow prompts on the terminal and offers model/runtime steps
- A bare terminal invocation reads answers from the real terminal (/dev/tty
  when stdin is the curl pipe); piped data is never used as an answer and
  nothing prompts without a controlling terminal.
- After the install choices it asks y/n separately for the speech model
  download and the pip runtime install, runs the chosen steps in order and
  stops at the first failure; equivalent flag commands are printed.
- Opens with a one-line note that the user can Ctrl+C and read the script.
- Drops the OpenVR autolaunch and --without-model questions from attended
  mode; the KDE desktop entry is the launch path. Flags are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:59:04 -04:00
baketnkandClaude Opus 5.5 e5b998eb6c installer: add explicit --install-runtime for the pinned CPU Python runtime (D4)
Creates a user-local venv under $XDG_DATA_HOME/frameyap/runtimes from the
invoking python3 (3.10-3.13), installs CPU torch==2.8.0 from PyTorch's CPU
index and moondream==2.4.0 from PyPI (binary wheels only, pip --isolated,
Torch constrained), verifies imports and no CUDA, then sets python= in
paths.conf and removes superseded managed runtimes. Requires --yes; has a
read-only --print-plan/--json. A failure removes only the new venv.

Offline tests mock pip; a real run passed on x86-64 Python 3.12. ARM64 Frame
install is still pending.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:53:28 -04:00
baketnkandClaude Opus 5.5 4c13b045e2 Tighten review panel; add battery and dashboard indicators; Type sends Enter when idle
- Drop the fixed 'Type adds a space' hint; a Bindings failure note now
  replaces the page count instead.
- Grow the transcript card to six lines, closing the empty band above the
  footer; move pagination down.
- Header: right-aligned clock/date, L/HMD/R battery readouts from OpenVR
  battery properties (headset falls back to the Linux system battery);
  missing readings are hidden.
- Status line chip shows Buttons ready/paused from IsDashboardVisible().
- Type (A or button) with nothing to review queues Enter alone; the button
  is labelled Enter in that state.

Offline and native x86-64 builds pass; not yet deployed to Frame.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:47:11 -04:00
baketnkandClaude Opus 5.5 59f4f9cff8 Add read-only Linux system battery reader
Reads the device's own battery from /sys/class/power_supply, skipping
peripheral (scope=Device) supplies and implausible values. Offline tested
against a fake power_supply tree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:47:11 -04:00
baketnk 94b747bb04 Add configurable seamless animated panel gradient 2026-09-25 10:10:15 -04:00
baketnk 67910aa7d4 fix(installer): honor explicit launcher overrides without duplicate flags 2026-09-24 23:32:14 -04:00
baketnk 9829d0611d feat(runtime): integrate backend controls and guarded paced text delivery 2026-09-24 23:23:11 -04:00
baketnk 4498ef5d04 feat(ui): add consent-bound model chooser and microphone controls 2026-09-24 23:03:09 -04:00
baketnk 665d003782 feat(config): persist backend selection and idle microphone policy 2026-09-24 22:52:51 -04:00
baketnk 9832ec1fd4 feat(worker): dispatch verified backends and preserve request-level failures 2026-09-24 22:50:37 -04:00
baketnk ebaae02b97 fix(installer): unwind owned model downloads on cancellation 2026-09-24 22:49:18 -04:00
baketnk 4a2c524b17 feat(installer): add attended source installs and consent-bound model provisioning 2026-09-24 22:32:51 -04:00
baketnk 5cbbda3ec2 feat(models): add pinned backend manifests and offline verification 2026-09-24 22:16:13 -04:00
baketnk 1bde401aa8 Add quick chat picker and hold-to-quit overlay control 2026-09-24 17:26:01 -04:00
baketnk 0d4cfbfdb7 Add rigid controller grab and layout lock; fix scale hit mask 2026-09-24 17:01:33 -04:00
baketnk 10a11510ba Show local clock and configurable date in panel header 2026-09-24 16:44:32 -04:00
baketnk 50f5277f5c Match external handles to the panel gradient 2026-09-24 16:43:20 -04:00
baketnk afb8509408 Fade wrist panel by viewer-relative angle 2026-09-24 16:39:16 -04:00
baketnk 33533ba8a2 Fix grab and scale with transparent external handles 2026-09-24 16:37:33 -04:00
baketnk c5e925cb48 Add opt-in fail-closed Xwayland auto insert 2026-09-24 16:12:33 -04:00
baketnk 19a3db7667 Add session-only anchored overlay resize grip 2026-09-24 15:50:55 -04:00
baketnk 3c03f88f17 Open SteamVR binding editor directly from Bindings button 2026-09-24 15:14:38 -04:00
baketnk 019b8132bb Bound captured PCM to the ASR normalized amplitude range 2026-09-24 15:14:09 -04:00
baketnk 6592e1af1c Add safe transcription errors and opt-in private debug logging 2026-09-24 15:07:53 -04:00
baketnk 29f3729df7 Face right-wrist panel inward without mirroring text 2026-09-24 14:54:13 -04:00
baketnk 7a3a5451dc Add review bindings menu and explicit insert-plus-Enter delivery 2026-09-24 14:49:06 -04:00
baketnk e61bf733f9 Wire wrist placement settings through config and installer 2026-09-24 14:46:24 -04:00
baketnk 569ba13830 Match wrist mount geometry to VR Workspace watch panel 2026-09-24 14:44:59 -04:00
baketnk 69f5de5a09 Add opt-in experimental overlay input priority 2026-09-24 14:31:00 -04:00
baketnk 4c043c9962 Submit the overlay through a persistent Vulkan texture 2026-09-24 14:12:46 -04:00
baketnk 8417212ed2 Keep capture stream running between PTT utterances 2026-09-24 14:04:31 -04:00
baketnk a9d6762ebd Add opt-in visible-overlay laser mode setting 2026-09-24 13:59:45 -04:00
baketnk 1496e436eb Add XDG JSON theme, font and button configuration with installer repair 2026-09-24 13:54:58 -04:00
baketnk 6b1d20858a Bind Frame right X to normal-priority hold-to-talk 2026-09-24 13:40:27 -04:00