186 Commits
Author SHA1 Message Date
ak47 7752c4e566 Fix Thunderbird deselection and review test synchronization 2026-11-07 15:57:33 -05:00
ak47 e7d02b1f62 Allow keyboard interruption of i3 speech during terminal handoff 2026-11-07 15:16:26 -05:00
ak47 a29910d002 Merge remote-tracking branch 'origin/testing' into testing 2026-11-07 14:46:59 -05:00
ak47 bf1f155018 Add native i3 desktop announcements 2026-11-07 14:46:46 -05:00
Storm Dragon c925344c41 Merge branch 'testing' of https://git.stormux.org/storm/cthulhu into testing 2026-11-07 14:43:12 -05:00
lilmike 20578ada40 Fix some issues with clickables on some websites. 2026-11-07 10:58:48 -08:00
Chase Cichorz 49eeae89f4 Fix GTK 4 foreground matching and menu labels 2026-11-07 13:40:23 -05:00
ak47 d0c977281d Bug fixes and package updates. 2026-11-07 13:14:22 -05:00
ak47 19b789ef5c Fix Remote speech stalls after pause and early completion 2026-11-06 22:11:29 -05:00
Chase CichorzandClaude Opus 5.5 6867d901b2 Support Remote browser and media keys and connection history UI
Accept the eighteen browser, volume, media and launch identities in the input vocabulary and both SDKs. Exercise media-key capture on the private Xorg harness, and permit only the new remember-host checkbox in the connection form integration test.

Validated: affected-package race tests, Tentacles make check, private native_remote_input.py and native_remote_keys.py. Physical input, live peer interoperability, speech and Braille acceptance remain pending.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 21:17:01 -05:00
Storm Dragon bf4a23645e Support compact Remote setup with reader-owned access selection 2026-11-06 20:07:05 -05:00
ak47 952d3c8204 Fix Remote Braille ordering and lease cleanup 2026-11-06 19:01:25 -05:00
Chase CichorzandClaude Opus 5.5 1c8ec3ce10 Inject Remote lock keys instead of retiring keyboard input
Refusing Caps, Num and Scroll Lock retired all remote input, so a
controller using Caps Lock as its screen-reader modifier lost keyboard
control on the first press. Lock keys are now owned like other keys and
released once at retirement without another toggle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 16:06:38 -05:00
Chase CichorzandClaude Opus 5.5 8e0ac3b258 Build the Tentacle SDK without cgo
The SDK reaches internal/datetime through settings validation, and that
package had only a cgo strftime implementation, so statically linked
Tentacle packages could not build. Split the locale-aware cgo formatter
into its own file and add a C-locale fallback for builds without cgo.
The reader itself still uses the cgo implementation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 16:06:38 -05:00
Chase CichorzandClaude Opus 5.5 cb4d98545f Expect typed remote.braille validation in the lifecycle conformance test
remote.braille is now implemented, so malformed parameters return the
invalid-parameters error. The unimplemented-operation check moves to an
operation that still does not exist.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 16:06:38 -05:00
Chase CichorzandClaude Opus 5.5 551ef86d5f Export and display Remote Braille through the reader
A controlled reader renders accepted application frames in a new
virtual-only cthulhu-braille mode at the controller's width and applies
its pan and route gestures; reader UI, flashes and secure frames are
never exported, and hidden frames are unroutable. A controller reader
reports its display width, shows peer cells as an untranslated raw
frame and forwards local pan and routing keys. The physical helper now
reports its width and edge pans.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 16:06:38 -05:00
Chase CichorzandClaude Opus 5.5 2651b5e9bd Add Remote Braille IPC to the host and both SDKs
remote.braille requests and events carry a typed op under a
braille-stream lease: the controller's width and gestures for a
controlled reader, rendered cells back to its child, and cells, local
geometry and display gestures for a controller. Direction is validated
per role; a full mailbox revokes the lease. No display owner is
attached yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 16:06:38 -05:00
Chase CichorzandClaude Opus 5.5 477d860fb8 Return the keyboard on Remote shortcuts and announce focus changes
During remote focus a Remote shortcut now ends capture, like F11,
instead of running its command, which would race with the focus change.
The reader announces when the keyboard starts and stops controlling the
remote computer, and the consent wording names the F11 escape.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 16:06:38 -05:00
Chase CichorzandClaude Opus 5.5 c234cb82a8 Add Xorg Remote controller capture with a core F11 escape
The Xorg command owner gains an exclusive Remote capture mode. Native
transitions pass through the repeat normalizer and capture router;
forwarded keys leave as remote.input events, Remote's own shortcuts are
dispatched locally, and F11 ends capture on the X thread. Reader policy,
overflow or inconsistent input also end it. Ending releases forwarded
keys first and keeps the grab until held keys are released. Local key
echo is suppressed during capture. The app attaches the owner to
sessions installed with keyboard-capture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 16:06:38 -05:00
Chase CichorzandClaude Opus 5.5 2d5327adf4 Add Remote controller capture IPC to the host and both SDKs
remote.focus lets a controller keyboard-capture lease ask core to enter
or leave remote focus; the reply acknowledges admission only. Core
reports the actual state with remote.focus events and forwards routed
transitions as remote.input events carrying the source keycode and, on
fresh presses, a canonical key name. A full focus mailbox revokes the
lease; revocation drains pending focus work. No native capture owner is
attached yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 16:06:38 -05:00
Chase CichorzandClaude Opus 5.5 27017bef11 Attach Remote keyboard injection to approved controlled sessions
Local launch and managed startup now start the incoming-key owner for
sessions installed with keyboard-inject, using one input-helper
Supervisor retained for the reader lifetime. Delivery rechecks lock,
XTerm handoff and internal reader UI in addition to lease, grant and
deadline. build-cthulhu.sh and both Arch packages build and install
cthulhu-input-helper; a missing helper leaves keyboard input
unavailable without affecting startup.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 16:06:38 -05:00
Chase CichorzandClaude Opus 5.5 c1333c2fdb Route quarantined Remote capture and balance bypass modifiers
Add RemoteCaptureRouter for normalized controller capture. Ordinary keys
and Cthulhu/NVDA modifier chords are forwarded; only a required core
escape chord and local chords derived from resolved bindings stay local.
A local chord first releases forwarded modifiers remotely; a later
forwarded key presses still-held ones again. Releases of local or
withdrawn keys are consumed, and retirement reports physically held keys
whose releases the native owner must swallow. No production caller.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 16:06:38 -05:00
Chase Cichorz 6b3aa80138 Normalize captured autorepeat for quarantined Remote 2026-11-06 14:30:43 -05:00
ak47 ee1c32f049 Verify quarantined Remote mailbox owner crash recovery 2026-11-05 23:21:22 -05:00
ak47 06530f0120 Join quarantined Remote key mailbox to supervised input cleanup 2026-11-05 23:12:47 -05:00
ak47 5ab3efdfa7 Supervise quarantined Remote input helpers and block uncertain replacement 2026-11-05 22:55:36 -05:00
ak47 21d8904ee3 Add independent Remote input helper with EOF and watchdog cleanup 2026-11-05 22:35:40 -05:00
ak47 cd9ae05bbe Add quarantined Xorg destination-key ownership and cleanup 2026-11-05 21:56:14 -05:00
ak47 792cac5d0b Add lease-bound Remote key IPC and SDK validation 2026-11-05 21:28:29 -05:00
ak47 9ac33560dc Share verified reading context announcements with Remote 2026-11-05 20:39:19 -05:00
ak47 8631c5a601 Share verified native Where Am I speech with Remote 2026-11-05 19:04:09 -05:00
ak47 ee3d91af23 Share native current-line speech with Remote 2026-11-05 17:55:11 -05:00
ak47 103fbfd81a Share document Where Am I reports with Remote 2026-11-05 17:11:08 -05:00
ak47 02fb70e81a Keep uncertain accessibility sources out of Remote speech 2026-11-05 16:56:50 -05:00
ak47 c03ffa7409 Export reviewed object and flat reading to Remote 2026-11-05 16:50:52 -05:00
ak47 49be8309fe Enable isolated Remote speech and protect reading exports
Attach incoming software speech to reader sessions with lease checks, local output priority and isolated cancellation. Preserve every document fragment source for privacy checks and export reviewed browse current-line reading, spelling and phonetic output.

Verified focused reading and Remote race tests, complete review and external Remote race suites, private relay integration, speech regressions, affected-package vet, reader build and Tentacles make check. Audible speech, physical input/Braille and live interoperability remain unverified.
2026-11-05 15:41:08 -05:00
Storm Dragon ac67236eca Find works in browsers. 2026-11-05 12:34:36 -05:00
Storm Dragon 1074904c5d Party popper emoji added. 2026-11-04 23:17:21 -05:00
Storm Dragon f034a2ec97 Continue web fixes. Sound bug for locations hopefully fixed. 2026-11-04 22:09:55 -05:00
ak47 453206b85b Web fixes. 2026-11-04 21:22:51 -05:00
ak47 914d174925 Add bounded incoming Remote speech stream ownership 2026-11-04 20:10:47 -05:00
ak47 ac431dd514 Add isolated Remote speech synthesis and typed rendering
Preserve literal whitespace and resolved spelling/language state across complete Remote speech assemblies. Isolate cancellation from local status and echo, retire handles on configuration changes or rendering failure, and cover metadata preparation cancellation with private SSIP fixtures.

Verified focused application and backend race tests, ten repetitions of isolated-client/rendering cases, shared speech regressions, affected-package vet, reader build and Tentacles checks. Incoming mailbox integration, local priority and live audible acceptance remain pending.
2026-11-04 19:56:38 -05:00
ak47 622d2f96a1 Export document reading with Remote lease safeguards 2026-11-04 19:24:58 -05:00
ak47 228271b43b Release retired document sources outside the cache lock 2026-11-04 19:24:52 -05:00
ak47 b4896a2eb4 Allow Remote sessions to outlive connection forms 2026-11-04 17:19:19 -05:00
ak47 b60cf5d5f2 Observe authorized local speech for Remote sessions 2026-11-04 16:53:16 -05:00
ak47 9bc74dbb13 Notify Tentacles when pending Remote approval is revoked 2026-11-04 14:43:22 -05:00
ak47 205cb27483 Assemble Remote speech before reader delivery 2026-11-04 14:33:54 -05:00
Storm Dragon f23e89ed93 Filter out stale accessibility events. 2026-11-04 14:23:54 -05:00
Storm Dragon 9e15f8652d Tentacle enhancements. 2026-11-04 13:44:13 -05:00