generated from erix/meta
[FEATURE] Unify real serial and PS/2 CLI input and visual acceptance #5
Labels
No labels
bug
ci
docs
duplicate
enhancement
help wanted
invalid
performance
phase-6
question
refactor
security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
erix/integration#5
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem and motivation
Direct test launch or guest-script injection does not prove users can operate tools through terminal input. CLI tests need reusable transport-independent intent with exact session, visual and lifecycle evidence.
Proposed behavior and scope
Consolidate input helpers behind a versioned backend API, implement serial and emulated PS/2 key/mouse paths, exact transcripts, layout-aware text and vtty selection, and migrate primary CLI acceptance while retaining justified protocol fixtures. Cover independent and mirrored terminal modes.
This issue records planned work; its unchecked criteria are not implementation proof. The normative basis is Phase 6 and AC1–AC24.
Authority, security and reliability
Send input only through selected UART/PTY or emulated device ingress; never inject into the shell/trusted endpoint or write terminal state directly. Bind observations to one live TTY/session, release held keys and owned processes on failure, and prevent ordinary input from impersonating approval.
Apply the priority order: security, reliability, then performance. Keep suspected vulnerabilities in the repository’s restricted SECURITY.md reporting channel.
Acceptance criteria
orchestration launch and output oracles; separate genuine CLI tests from low-level
protocol/kernel fixtures before migrating them.
connect/select-session, send text, press/release keys, modifiers/chords, synchronization and
teardown; keep scenario intent independent of transport.
encoding, line endings, fragmented escapes, partial writes, reconnect policy and bounded
backpressure without bypassing seriald/ttyd.
codes, make/break, modifiers, repeat, arrow/delete and secure attention; do not inject
directly into the shell or trusted-input endpoint.
starts; document how a future USB/HID or other backend plugs in without changing every
scenario or inventing synthetic trusted input.
terminals, PS/2 completion must use its framebuffer/session output, not unrelated serial log
stamps; never send a command through both backends and accept whichever output happens to
arrive.
timeout and completion, with structured failure context; screenshots/framebuffer state must
corroborate visual assertions where needed.
stuck modifiers, cancellation and stale sessions; hard-bound helper/QEMU lifetimes and retain
original status on observation failure.
Ctrl-C, foreground/background jobs and y/n plus Enter consent; prove ordinary input cannot
impersonate trusted approval or another TTY.
boot-tool, sha2-tool, help, man, extop and self-host build commands; preserve existing
assertions and record every renamed/retired case mapping.
directly launched test scripts or hidden rootd orchestration as primary evidence that a user
can operate a CLI tool.
and explicitly mirrored modes; preserve existing hard/stall limits and exact
source/image/session evidence.
new backend/scenario, and add a coverage gate preventing new CLI acceptance tests from
silently bypassing the primary input harness.
fixtures available; run US/Finnish punctuation, modifier and trusted-input cases under the
actual boot preference. Serial sends text bytes directly and must not be translated a second
time as keyboard scan codes. Record layout and key sequences; use independent expected vectors
rather than the production keyboard translator as its own test oracle.
press/release actions, preserving packet boundaries and validated device ingress; never
substitute host clipboard or direct guest terminal-state writes for mouse acceptance evidence.
held/released modifiers, invalid targets and switching during output or prompts; observe the
selected framebuffer vtty rather than a serial sibling.
pasted text, plus early boot-logo screenshots tied to exact image/asset hashes. Preserve
bounded observation and input teardown on failures.
For each implementation slice, retain actual formatting, strict Clippy, unit/doctest and warning-denied build results for all altered Rust repositories and valid configurations. Add relevant runtime VM coverage, monitor older unit/VM regressions in exact-head CI, and update canonical component documents and affected technical-manual/API material. Every authored code file must remain below 1,000 physical lines, with meaningful inline documentation and missing_docs enforcement in Rust crates.
Alternatives and tradeoffs
A serial log cannot prove the selected framebuffer vtty rendered a result. Keep capability differences explicit, use independent physical-layout expectations, and corroborate visual behavior with exact image/session-bound frames.
Tracking and rollout
Dependencies: integration#1
Dependencies identify required contracts and closure gates; preparatory inventory/design can proceed in parallel under one owner per edited file. Link bounded implementation issues and their PRs here before claiming acceptance. Use
feature/posix-compat, regular signed commits in the canonical contribution format, and WIP PRs linked to the exact coherent component graph. All cross-repository Cargo/catalog selections and CI helpers use full 40-character lowercase commit hashes, including transitive dependencies; do not substitute branch, tag or implicit HEAD selection.Close criteria only with their own reviewed deliverables and validation evidence. Pending, skipped, cancelled, failed or predecessor-only results remain distinct. Keep main images unchanged until explicit promotion direction; technical completion does not authorize merges, release tags or publication.
[FEATURE] [P19] Unify real serial and PS/2 CLI input and visual acceptanceto [FEATURE] Unify real serial and PS/2 CLI input and visual acceptance