Files
sechmachine 408d4f9cc3
Verify Protocol / module (push) Successful in 1m17s
Verify Protocol / verify (push) Successful in 55s
feat(protocol): negotiate display and native input
2026-08-10 23:07:04 +07:00

1.7 KiB

MODIFIED Requirements

Requirement: Typed sequenced input envelope

The input.sequenced.v1 payload SHALL begin with ASCII VGI1, a one-byte event kind, and one-byte payload length. It SHALL contain exactly one bounded keyboard, mouse-button, relative-mouse, UTF-8 scalar, controller-state, absolute-mouse, or high-resolution-scroll event. Absolute mouse kind 0x06 SHALL contain big-endian u16 x, y, viewport width, and viewport height, reject zero viewports and coordinates outside the viewport, and require negotiated input.absolute.v1. Scroll kind 0x07 SHALL contain big-endian signed i16 vertical and horizontal deltas and require negotiated input.scroll.v1. False keyboard/mouse state and zeroed controller state are explicit releases. Unknown or unadvertised kinds, length mismatches, malformed UTF-8, unsupported controller indices, and reserved fields SHALL be rejected before provider translation.

Scenario: Keyboard state change

  • WHEN a client sends a valid keyboard press or release envelope
  • THEN the gateway forwards the corresponding typed provider input on its reliable keyboard channel and records the pressed state for cleanup.

Scenario: Absolute pointer and scroll

  • WHEN an advertised client sends an in-viewport absolute coordinate or signed scroll delta with the exact body length
  • THEN the gateway accepts the provider-neutral event without adding it to pressed-state cleanup.

Scenario: Invalid input envelope

  • WHEN a client sends an unknown or unadvertised kind, invalid length, malformed UTF-8 scalar, zero viewport, out-of-range coordinate, or nonzero reserved field
  • THEN the gateway rejects it without sending provider input or changing pressed state.