211 Commits
Author SHA1 Message Date
hjozwiak 0d5a5f7ac1 Recover browser list selection on ticking pages 2026-11-11 10:39:09 -05:00
hjozwiak ac7f7acc43 Fix Wayland internal UI lifecycle edge cases 2026-11-11 09:05:10 -05:00
hjozwiak fc25f7e7e8 Add command bypass and internal UI sessions to Wayland keyboard backend 2026-11-11 08:12:04 -05:00
hjozwiak bebde8fd5e Name unnamed clickables from descendant text on structural landings 2026-11-11 07:42:50 -05:00
hjozwiak 469ed7c549 Stop discarding Steam toasts on root defunct 2026-11-11 06:56:15 -05:00
hjozwiak 04a1070055 Merge of testing. 2026-11-11 06:31:00 -05:00
ak47 873967d18a Ignore stale table row focus after selection changes 2026-11-10 21:49:04 -05:00
Storm Dragon 2fb4a1b9a0 Merge branch 'testing' of ssh://git.stormux.org:1101/storm/cthulhu into testing 2026-11-10 21:34:44 -05:00
ak47 ae53f23c63 Announce the initial row in unselected GTK menus 2026-11-10 21:26:17 -05:00
hjozwiak 0459fb8e50 Add golangci-lint gate and fix its findings
Configure golangci-lint v2 for the whole tree (brlapi/duckdb build tags, curated linters, documented exclusions) and resolve what it reports: dead code, wrapped-error comparisons and %w wrapping, unclosed websocket handshake bodies, staticcheck SA/S items, ineffectual assignments, and explicit _ = discards for best-effort teardown errors. Document the gate in CONTRIBUTING and AGENTS.
2026-11-10 21:13:49 -05:00
hjozwiak b03cb8917d Add optional DuckDB debug log database with typed schema
New --debug-db flag writes the redacted debug record stream to a DuckDB database alongside or instead of the NDJSON --debug-file. Frequent type-stable attributes are promoted to typed columns; the complete record remains in attrs JSON. libduckdb is dlopen'ed at runtime (build tag duckdb, Arch optdepends) so the reader runs unchanged without it. v1 databases upgrade in place on append.
2026-11-10 21:13:41 -05:00
Storm Dragon 5f7806eb32 Merge branch 'testing' of ssh://git.stormux.org:1101/storm/cthulhu into testing 2026-11-10 20:46:59 -05:00
ak47 090ac9dbeb Log Tentacle lifecycle and remote connection diagnostics 2026-11-10 20:45:43 -05:00
Storm Dragon 5b2b558d2e Handle exited OCR descendants in package checks 2026-11-08 14:00:00 -05:00
Storm Dragon db6b9cc492 Merge testing for the 2026.10.31 release refresh 2026-11-08 13:26:02 -05:00
ak47 64f60fe4e8 Honor Num Lock during Remote keyboard capture
Forward numeric keypad identities with Num Lock enabled and preserve held-key pairing across lock changes. Suppress local lock feedback during remote capture so it cannot interrupt incoming speech. Add debug speech and capture-end diagnostics, expand private keypad checks, and repair the suspension probe source list.

Validated affected Go packages, focused remote speech race checks, the private X11 Remote input harness, and a reader build. Live physical keyboard, audible PowerShell speech, Braille, and disconnect-cause verification remain pending; the active reader session was left running.
2026-11-07 22:37:39 -05:00
ak47 abb4890e8a Announce popup state for buttons and links 2026-11-07 22:08:48 -05:00
ak47 4c95c9f278 Add global command bypass with Cthulhu+Z 2026-11-07 22:07:03 -05:00
ak47 d01965c00d Group inline links and list items into browse lines 2026-11-07 20:31:50 -05:00
Storm Dragon 3dbd7f2554 Avoid repeating Mumble server labels across columns
Collapse identical full-row labels only for Mumble while preserving mixed column data and repeated values from other providers. Add Qt native coverage and document live saved-server listening confirmation.
2026-11-07 20:12:25 -05:00
ak47 64440fbb78 Add Mumble message review shortcuts 2026-11-07 19:59:23 -05:00
ak47 d5f8a392cf Resume Cthulhu on empty i3 workspaces 2026-11-07 19:49:00 -05:00
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