102 lines
5.5 KiB
Markdown
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.
|