75 Commits
Author SHA1 Message Date
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 045cd4f45f Add opt-in delivery-debug.log for paced text delivery
Advanced debugging now also records paced-delivery metadata (byte
offsets, lease/send errors, finish results and the exact focus-guard
check that failed) to an owner-private delivery-debug.log. No transcript
text is logged. Diagnoses later chunks being dropped after the first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 22:41:44 -04:00
baketnkandClaude Opus 5.5 279455134b README: link the YouTube tutorial
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 11:15:59 -04:00
baketnk 448ed8c2cd Show the recorded FrameYap UI in the README 2026-09-25 12:21:42 -04:00
baketnkandClaude Opus 5.5 b8eeb50b39 docs: user-facing README; move technical detail to docs/development.md
README now covers install, launch, controls, troubleshooting, privacy and
update/uninstall for users. Validation status, version format, CLI and full
control semantics move to docs/development.md. TODO records the
v0.1.202609251524 release and the owner's fresh curl | sh install.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 11:41:01 -04:00
baketnkandClaude Opus 5.5 3f451087ca installer: clarify post-install runtime and model messages
The native-only notice read as an error in the attended flow, where the
runtime step follows; the model message still asked for manual paths
although the app finds the XDG model store itself.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 11:36:42 -04:00
baketnkandClaude Opus 5.5 a15bad0aed Release v0.1.202609251524
Supersedes the unpublished v0.1.202609251506 tag, whose release build script failed to
configure SDL3.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.1.202609251524
2026-09-25 11:24:58 -04:00
baketnkandClaude Opus 5.5 d522291c6c build-release: configure SDL3 as a console (audio-only) build
SDL refuses to configure without X11/Wayland development files unless
SDL_UNIX_CONSOLE_BUILD is set; joystick/camera are not used.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 11:24:55 -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 70ea838a59 docs: close P1 and live dictation acceptance per owner; list remaining v0.1 gates
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:47:27 -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
baketnkandClaude Sonnet 5 1e45134755 docs: source-only v0.1, move licensing pointers to third-party.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-25 00:02:53 -04:00
baketnkandClaude Sonnet 5 f116157859 docs: record installed Frame build and P1 synthetic delivery results
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-24 23:53:01 -04:00
baketnk 67910aa7d4 fix(installer): honor explicit launcher overrides without duplicate flags 2026-09-24 23:32:14 -04:00
baketnk 938caa39cc docs: describe paced typing and remaining acceptance gates 2026-09-24 23:23:11 -04:00
baketnk 9829d0611d feat(runtime): integrate backend controls and guarded paced text delivery 2026-09-24 23:23:11 -04:00
baketnk 1321ca8316 docs: align release scope and track remaining device acceptance gates 2026-09-24 23:03:50 -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 07c03ea27e docs: prepare FrameYap release plan and archive device notes 2026-09-24 22:03:52 -04:00
baketnk 1bde401aa8 Add quick chat picker and hold-to-quit overlay control 2026-09-24 17:26:01 -04:00
baketnk d1485ff71a Record free grab and layout lock deployment 2026-09-24 17:04:11 -04:00
baketnk 0d4cfbfdb7 Add rigid controller grab and layout lock; fix scale hit mask 2026-09-24 17:01:33 -04:00
baketnk 9c7fdae264 Analyze raw overlay teardown compositor crash 2026-09-24 16:58:59 -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 434d6b3951 Record Frame grab and scale deployment checks 2026-09-24 16:40:56 -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 468f35622e Record Frame install and owned focus delivery limits 2026-09-24 16:23:45 -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 468d3e9b63 Record PCM range failure diagnosis and verified Frame deployment 2026-09-24 15:16:57 -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 3190877587 Record debug and wrist native deployment boundaries 2026-09-24 15:09:54 -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 deb8f84591 Record Frame bindings deployment and open wrist acceptance 2026-09-24 14:52:33 -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