Files

102 lines
5.5 KiB
Markdown

# Internal UI migration and acceptance
## Status
The shared toolkit is released as v0.2.0. Cthulhu and Fenrir pin that version
in go.mod and go.sum; their normal builds do not require a local workspace.
A parent go.work may still select sibling checkouts for development. Verify
release dependencies and builds with GOWORK=off.
The implementation is now consolidated into internalui: one session and widget
engine supports optional tabs, all controls, validation, rich editing, and
speech/braille results. The previous APIs are adapters, not separate engines.
New controls can be added to this package and used by either reader. There is
currently no general table or date widget.
Intentional behavior changes: lists and category arrows no longer wrap;
checkbox Enter toggles rather than submitting a flat form; list search uses
Fenrir's editable prefix and rejects unmatched text; both editors use partial
selection, word movement, clipboard requests and Cthulhu-style editing feedback.
Tab/Shift+Tab still cycles through the dialog. Fenrir entries now have the shared
8192-rune default limit; forms can request a smaller limit. Fenrir clipboard
operations use its current clipboard-history item and existing persistence/sync
settings. Passwords cannot be copied or cut into that history.
Desktop AT-SPI table reading, native GTK preferences rendering, and console
application reading remain separate from reader-owned controls.
## Automated verification
From the common checkout: `go test -race ./...`.
From Cthulhu: test internal/interaction, internal/emoji, internal/app,
internal/tentaclewire and internal/preferences, build cmd/cthulhu, and run
`python3 tests/native_internal_ui.py` on its isolated desktop.
From Fenrir: test internal/interaction, internal/emoji, internal/preferences,
internal/app and internal/input, and build cmd/fenrir. The native terminal
capture harness can use FENRIR_CAPTURE_TEST_ONLY=1 and FENRIR_TEST_BINARY
pointing at the rebuilt reader, under its private Xvfb desktop.
These checks do not establish physical keyboard, audible speech or hardware
braille acceptance. Existing readers have not been restarted or installed.
## Live Cthulhu check
1. Quit Cthulhu with Cthulhu+Q.
2. Press Ctrl+Escape to enter i3 personal mode.
3. Press Shift+G to rebuild and start Cthulhu and its braille helper with the
debug log and test terminal. Ctrl+Escape and Shift+G are separate presses.
4. Open Emoji Menu with Cthulhu+Control+E. Expect the menu title and the first
category tab. Left/Right should change category; Tab should enter its grid.
5. Use Left/Right/Up/Down, Home and End. Expect the selected emoji label,
row/column and item count; braille should follow selection when connected.
Moving beyond an edge should leave selection at the appropriate boundary.
6. Type a known label prefix, then Backspace and Control+Backspace. Expect
filtered items, then search restoration, without typing into the terminal.
7. Tab to the copy checkbox, toggle it with Space, and Shift+Tab back to the
grid. Expect the checkbox state and restored grid selection. Escape should
close the menu and restore terminal keyboard input and normal braille.
8. Repeat an ordinary action menu or Tentacle form that you normally use.
Check Tab/Shift+Tab, editable text, activation and cancellation.
Report the exact speech, braille content, focused control and key for any
unexpected result. Inspect ~/devel/cthulhu-go.log if this differs from expected.
## Live Fenrir check
The test binary is /tmp/fenrir-shared-ui. To avoid replacing the active console
reader, it can be started with `-x` in an X11 terminal supplying WINDOWID, as
supported by Fenrir. Use the desktop keyboard layout.
1. Open Fenrir Menu with Fenrir+F. Navigate tabs and controls in both directions.
Check a checkbox, a numeric control and a combo; Escape should close without
saving your trial edits and return keys to the terminal.
2. Open Emoji Menu with Fenrir+Control+E. Check category navigation, grid arrows,
Home/End, prefix search and clearing. Expect existing coordinate/position
verbosity settings to be respected.
3. Close with Escape. Verify ordinary terminal typing, then reopen the menu.
4. If you use a translated catalog, verify translated labels and filtering;
dictionary words and user-provided choices should remain literal.
Report the exact speech, active control and key for any difference from your
current reader. The toolkit now returns braille for both layouts; Fenrir currently consumes speech only.
## Additional acceptance for consolidation
1. In Fenrir's Applications menu, press Up at the first item and Down at the
last item. Expect the same item to remain selected. Home/End should reach
the ends. On the category strip, Left/Right should also stop at the ends.
2. In an editable settings field, type a disposable value such as “one two”.
Control+Shift+Left selects the final word; typing replaces that selection.
Control+A selects all; Control+C copies it to Fenrir's clipboard history.
Control+V inserts the current clipboard item. Control+X cuts the selection.
Cancel the form without saving the disposable settings value.
3. In Cthulhu, repeat the existing editable-form/clipboard workflow and emoji
copy-checkbox cancellation test. Expect masked secret output where a
password field is used, and restored application focus/braille on Escape.
Automated fixtures also exercise rich numeric/tabbed forms through Cthulhu's
host, including local-only capture refusal, and protected entries through both
layouts. No new user-facing password dialog was added solely for testing.