32 Commits
Author SHA1 Message Date
Storm Dragon e222d336a5 Preserve terminal feedback while coalescing repaints 2026-11-04 12:22:11 -05:00
Storm Dragon 24261edb3d Tentacle support enhancements. 2026-11-04 12:10:41 -05:00
Storm Dragon 0a3d946ffa Latest merge from Hunter. Also a couple files I forgot to add yesterday. 2026-11-03 11:41:33 -05:00
Storm Dragon 4da61465b0 Fix document retention and helper retry regressions
Keep failed cursor trials and native recapture anchored to the original document, and restore the requested cached root before LRU eviction. Base braille retry resets on established connection time rather than stalled startup. Poll private AT-SPI daemon ownership without triggering service activation and clean up partial startup failures. Add focused regressions and update browser testing notes.
2026-11-03 11:37:36 -05:00
Storm Dragon 89686fa029 Refresh browser tests and recover Firefox tab announcements
Bring the fragmented-line browser fixture into agreement with current browse
navigation. Rich editors are read through their text descendants, so Down from
the preceding heading must read "Review the code." directly. Remove the stale
empty editor-control stop while retaining forward and reverse line navigation,
character and word movement, Read All, and inline Braille-routing assertions.

Fix Firefox's missing announcement when creating a second tab. Firefox can emit
selection events before the new tab enters its accessible child list, causing
the native selected-child lookup to return nothing. Use the subsequent
child-added event only when its target is a live, freshly selected browser-chrome
tab with the emitting tab list as its direct parent. Keep document-authored tabs
and unselected background additions excluded, retain foreground filtering and
tab-identity deduplication, and release native references on the GLib owner.

Normalize child-added origin suffixes such as :system before event dispatch,
preserving the original native type in diagnostics. Rename the shared mutation
normalizer to reflect its expanded scope and update its callers, including the
Pidgin insertion check. Extend the normalization regression to cover child
additions and reject unrelated event names. Firefox keeps its normal animations
and all existing tab-announcement and address-editing assertions.

Make private-session teardown tolerate the document portal's asynchronous FUSE
unmount after D-Bus exits. Retry only ENOTCONN and EBUSY cleanup failures for at
most five seconds. Keep unrelated errors and persistent mount failures visible.
Add regressions for transient teardown, preservation of a failing child's exit
status, unrelated cleanup errors, and the cleanup deadline. Runtime directories
and accessibility buses remain private, with no init-system dependency.

Update browser verification notes and the parity ledger with the fixes, evidence,
regression risks, and concrete live acceptance procedures.

Validation:
- All 33 Chromium browser proofs passed in the final combined run.
- Firefox baseline and tab checks passed repeatedly with normal animations.
- All eight private-session isolation and cleanup regressions passed.
- AT-SPI, app, and review package race suites passed during development; focused
  race regressions passed again after the final event-normalization change.
- Go vet passed for internal/atspi, internal/app, and internal/review.
- A separate reader binary built successfully.
- Parity-ledger validation passed for 75 rows; git diff --check passed.
2026-11-03 02:38:59 -05:00
Storm Dragon 7ec6e4ccaf Preserve native offsets after braille text expansion
Expanding embedded-object placeholders changes the displayed braille text
without changing native AT-SPI offsets. Several consumers still validated
native positions against the expanded string, which could reject a valid
line end after contraction, accept an offset beyond the native line after
expansion, or drop selection and text-attribute indicators on a plain-text
fragment following an embedded object.

Use RawText for native-offset validation and fragment comparisons whenever
a braille line is expanded. Apply the same rule to parent/child native-caret
handoff: identical displayed text must not authorize an offset transfer
when the underlying native strings differ. Expanded spans retain their
existing conservative presentation without native cell routes.

Restrict the assembled-line displayed-text fallback to lines from which
embedded-object placeholders were actually removed. Ordinary whitespace-only
lines now retain their spaces, cursor position, and native routing instead
of being replaced with the object's text or accessible name.

Add regressions for contracted and expanded native offset bounds, suffix
selection and attribute preservation, immutable line enrichment, ambiguous
caret transfer, and whitespace-only line routing. The regressions reproduced
the review findings before the fixes and pass afterward.

Validation:
- Full Go suite before fixes; full race and BrlAPI suites after fixes.
- Focused Braille and native-caret regressions, including race checks.
- go vet ./...; reader and BrlAPI helper builds; parity-ledger validation.
- Private Chromium linked-heading, selection, and browse-mode checks.
- Private Firefox baseline and linked-heading checks.
- git diff --check.

The Chromium fragment harness still fails its embedded-editor navigation
step, and the Firefox harness still times out in its New Tab test. Both
failures reproduce on the parent of the reviewed commit, 8ce5e5c, as well.
These failures are not claimed as passing checks.

The active reader was not replaced. Physical keyboard, audible speech, and
Braille acceptance remain for maintainer testing: check linked headings,
mixed inline-link text, selection indicators after links, and ordinary or
blank-line cursor routing in both browser families before submission.
2026-11-03 01:54:25 -05:00
Storm Dragon 60f7f7a2e9 Code review and fixes. 2026-11-02 23:37:45 -05:00
Kendell Clark 7591f65b58 Added tentacle updater. 2026-11-01 12:21:55 -05:00
Storm Dragon 03cf063d60 Make sure testing matches master. 2026-10-31 14:56:39 -04:00
Storm Dragon 53a9aa301f Preparing for release. 2026-10-31 00:23:28 -04:00
Storm Dragon 702894ee4a Package updates. 2026-10-31 00:21:34 -04:00
Storm Dragon ff7055d715 Preparing for release. 2026-10-30 01:51:47 -04:00
Storm Dragon 01f50c17e8 Fenrir's emoji ported to cthulhu. 2026-10-29 19:20:29 -04:00
Storm Dragon 74afa425da Merge testing. 2026-10-29 13:35:34 -04:00
Storm Dragon 3e2429b8a5 Add autofocus mode. 2026-10-28 22:06:04 -04:00
Storm Dragon eb5b2038d6 Some echo tests added. 2026-10-27 00:40:49 -04:00
Storm Dragon 8a32895457 Latest changes. 2026-10-26 21:16:37 -04:00
Storm Dragon 7723bd7e09 Merged testing. 2026-10-26 02:42:38 -04:00
Storm Dragon 0d76e44f9a Fixed some element types being spoken even though sound only is selected. 2026-10-26 02:41:07 -04:00
ak47 d33960ddf3 bumped version to 2026.10.25 2026-10-25 15:48:28 -04:00
Storm Dragon 133953e972 Report wine-access version if available in version commands. 2026-10-24 15:19:43 -04:00
Storm Dragon 8a560a25a5 Version bump. 2026-10-24 13:21:35 -04:00
Storm Dragon 736f5a0f68 Version Bump. 2026-10-23 01:31:20 -04:00
Storm Dragon e62f8c8e17 Fixed a bug in a test that caused other channel names than master to fail.? 2026-10-22 01:42:53 -04:00
Storm Dragon b7426177d9 Version bump 2026-10-22 01:37:59 -04:00
Storm Dragon f8efae9a92 Version bump and feature freeze. Until release bug fixes only. 2026-10-20 02:40:24 -04:00
Storm Dragon 396efbd7c5 Version bump and some lable/relation fixes. 2026-10-18 22:11:54 -04:00
Storm Dragon 3db88abddb Title keybinding added. 2026-10-17 23:10:15 -04:00
Storm Dragon ebb9ad48d0 Better logging for browser. 2026-10-16 20:16:22 -04:00
Storm Dragon 70e8e14231 Version bump. 2026-10-15 12:51:35 -04:00
Storm Dragon e5049b9f5e Version bump. 2026-10-14 00:22:42 -04:00
Storm Dragon 069fc674dc Cthulhu is no longer a fork. Now it is a screen reader written in Golang. 2026-10-14 00:16:34 -04:00