Skip to content

id: Phase 13 F13.5 kitty keyboard protocol on the raw input path #787

Open

Description

@dezren39

What and why

Negotiate the kitty keyboard protocol (CSI > u) where supported so Escape vs Alt is unambiguous and key events go beyond the legacy byte stream; extend Key.parse and the browser encoder to match.

Source

Current status

Not started. Key.parse decodes legacy sequences only (pkgs/id/examples/roc-world/Key.roc); no negotiation in pkgs/id/src/world_ssh.rs.

Acceptance criteria

  • A kitty-protocol terminal and the web encoder produce the same key event for the same keystroke (parity test)
  • Escape vs Alt is unambiguous on a kitty-protocol terminal
  • The raw input path carries the richer key events without changing the durable Input event

Size

M

Prerequisites

Activity

  1. developing-today commented on Oct 24, 2026

    @developing-today
    Contributor
  2. added
    kind/featureNew feature or capability request
    priority/lowNice to have; do when convenient
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    source/humanFiled directly by a human
    on Oct 26, 2026
  3. dezren39 commented on Oct 26, 2026

    @dezren39
    MemberAuthor

    Intake review

    Fleet monitor intake pass (protocol §5).

    Related: Phase 13 sibling set — #785 (F13.3), #786 (F13.4), #787 (F13.5), #788 (F13.6), #789 (F13.7), #790 (F13.8); this issue is F13.5 kitty keyboard protocol on the raw input path. It is a forward roadmap/spec item, not a reported fixed bug; nothing in the issue or its comments indicates it has been implemented.

    Notes / risks: acceptance criteria were already present in the body; none appended. Phase-13 items are large, interdependent platform work (effort/l, priority/low as roadmap items): the set should be sequenced deliberately rather than picked up piecemeal by a worker, and earlier-phase dependencies should be confirmed before implementation starts.

    Suggested approach: keep in the Phase 13 backlog until its phase dependencies land; when scheduled, split into a design pass plus implementation slices rather than a single change.

    Labels normalized by the monitor.

  4. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Oct 28, 2026
  5. 211 remaining items

  6. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done (triage)

  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: opencode-claimant
    • Task: repo-health-code-pilot task 7947, issue id: Phase 13 F13.5 kitty keyboard protocol on the raw input path #787
    • Session / ID: ses_e5e5e299e5effeOuwxOUx5ekUX
    • Worker: repo-worker-code (bound worker uses this id for all queue helper verbs)
    • Route: opencode-route/workhorse, agent build
    • State: claimed task bound at launch; OpenCode worker prompt admitted.
  8. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1

    • task: 7947
    • transition: handed_off
    • lane: code-f (queue worker), execution_lane: opencode
    • state: claimed by lane code-f at 2026-11-03T14:38Z; execution-lane assignment returned opencode, so this worker handed task 7947 (implement id: Phase 13 F13.5 kitty keyboard protocol on the raw input path #787 slice B: bounded input stream assembler, inert) off to the opencode claimant, which launches the bound session to drive it to its terminal state. The issue carries user/review — per the runbook that label is the worker fleet's lane, and the bound session reviews as it implements. Claim labels synced (queue/claimed, work/assigned, status/in-progress added).
  9. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: queue worker (repo-worker-code), lane code-f
    • Session / ID: task 7947
    • Found via: queue claim
    • Task: Handed off to the opencode execution lane (prior handoff lease expired unbound, where applicable); the laptop claimant launches the bound opencode session, which drives task 7947 to its terminal state.
    • Expectation: effort m; done = worked per the task packet at current main, verified terminal state.
    • Links: issue id: Phase 13 F13.5 kitty keyboard protocol on the raw input path #787
  10. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  11. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off (re-handoff, resume state preserved)

  12. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  13. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  14. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: queue worker (repo-worker-code), lane L shift
    • Session / ID: task 7947
    • Found via: queue claim
    • Task: task 7947 (small_fix, id: Phase 13 F13.5 kitty keyboard protocol on the raw input path #787 slice B bounded input stream assembler) is assigned to the opencode execution lane; handing off to the laptop opencode claimant. Existing branch queue/7947-787-input-assembler and laptop worktree from the prior claimant session are preserved for resume.
    • Expectation: claimant launches the bound opencode session, which drives task 7947 to its terminal state.
    • Links: branch queue/7947-787-input-assembler
  15. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  16. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  17. added a commit that references this issue on Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)effort/lLarge: multi-day or open-ended; expect staged check-insenhancementNew feature or requestkind/featureNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedmode/onlineFully doable remotely: design, config, code, cloudpriority/lowNice to have; do when convenientqueue/claimedQueue worker lifecycle statesource/humanFiled directly by a humanstatus/in-progressQueue worker lifecycle statetask/triageQueue packet kind: verify, reproduce, and route this itemuser/reviewNeeds a user-look: Muse reviews first and handles what it canwork/assignedQueue worker lifecycle state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions