A Wine application can inherit a different D-Bus session address from the
running Cthulhu instance. The helper manager previously copied that address
from the application's environment, redirecting accessibility requests to
a bus where the supervising reader was unavailable. This left foobar2000
and its Preferences dialog silent despite working native control support.
Retain the reader's inherited DBUS_SESSION_BUS_ADDRESS when launching a
helper. Continue taking the application's display, runtime directory,
Wine prefix and loader so hooks still attach to the correct Wine session.
The manager remains responsible for helper startup and shutdown.
Extend the existing manager lifecycle regression to supply conflicting
application and reader bus addresses. Assert that the helper receives the
reader's bus, the application's display, the expected prefix and the
managed-helper marker, while retaining the shutdown checks. The regression
failed against the original implementation before the fix.
Validation:
- GOPROXY=off go test ./internal/wine -count=1
- GOPROXY=off go test -race ./internal/wine -count=1
- GOPROXY=off go vet ./internal/wine
- Built and installed the reader; configuration validation passed.
- After reload, both the default-prefix and Bard helpers used the reader's
bus. Foobar2000 Preferences opened on workspace 3 without settings changes.
- The user subsequently confirmed that the installed changes look good.
Thunderbird's message composer emits U+FFFC object replacement characters
when creating or removing paragraph objects. Treating these structural
updates as inserted or deleted text sent raw placeholders to speech,
including multi-character updates that bypass ordinary key-echo settings.
Remove object markers from insertion and deletion presentation while
preserving surrounding text. Normalize typing-echo payloads before deciding
the echo kind or applying character, word, and sentence echo policies.
Return no text or echo kind for updates containing only object markers.
Add regression cases for single and repeated markers, mixed marker/text
payloads, and ordinary text through both event presentation and typing echo.
Validation:
- go test ./... -count=1, with the local cache and dependency network disabled.
- Built the reader and the BrlAPI-tagged Braille helper.
- A disposable Thunderbird profile on a private X11 display and session bus
produced one marker-containing presentation before the fix and none after.
- Private Thunderbird checks preserved character, word, and line navigation
after typing several paragraphs.
- The user confirmed main-arrow reading worked with the restarted build.
The original silent-arrow failure was not reproduced in isolation. Restarting
restored reading in the user's session; this commit does not claim to fix
its underlying cause or change arrow-key handling. Physical Braille output
was not tested. Preserve the original and fresh diagnostic logs locally.