Skip to content
C.W.K.
Stream
Lesson 04 of 04 · published

Pippa Proposes, You Type

~12 min · pippa, proposal, completion, snapshot, newline

Level 0Spark
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

A Proposal Is Not a Submit

Pippa can propose a command. That is a family-shaped feature, and it is allowed only as a proposal. ⌘K asks a loopback endpoint on the same Mac — Pippa's, not the sibling door, not the mobile gateway — and comes back with candidates. The candidates insert against a frozen snapshot of the line you were on. They never carry a newline. They never silently pick a winner. You look. You pick. You press Enter, or you do not. "Pippa proposes; you execute" is structural, the same bar as drafts staying outside the PTY, applied to a single line instead of a seat's document.

A completion that auto-picks is a model-callable write by another name. A proposal that includes a trailing newline is a submit wearing a suggestion. Both will ship if nobody names them, because they photograph as helpful. They are how a Sidekick becomes a keyboard, and a keyboard a model can press is the door this track just refused, opened from the inside.

Frozen Snapshot, Then You Choose

While candidates are on screen, the line they were computed against must not be a moving target. The snapshot freezes what Pippa saw. If the PTY prints, if you keep typing, if a sibling launch rearranges the tab, the candidates belong to a moment that has passed. Inserting them into a different line is how you complete the wrong command with the right-looking suffix. The honest UI either inserts into the snapshot (and you see the join) or discards the candidates and asks again. It does not splice a stale suffix onto a live prefix in the dark.

Option+Tab is the chord that shows more than one candidate and makes you pick. Tab itself stays with the shell — that split was a chrome rule in Track 1, and it stays a chrome rule here. Pippa completion is a different code path. Multiple candidates, explicit choice, explanations in English next to the command because chrome is English. A single glowing suggestion that accepts on Tab is a silent pick, even if the glow is pretty.

The Endpoint Is Loopback, the Act Is Yours

The proposal comes from Pippa over loopback, authenticated like any other family call, and it is still not the sibling door's generic input verb. Pippa may read the visible snapshot to propose. She may not send the proposal as input. She may not complete on your behalf while you are in another room. She may not attach a newline "because obviously you meant to run it." Obviously is how submits sneak through.

This is also why a phone will not get a looser proposal later. A pocket ⌘K that auto-runs because the keyboard is annoying is the same silent pick in a smaller glass. The working iOS contract is continue-host-work: observe, take control, then type. Proposals, when they exist there, will still insert without a newline. The Mac has to get this right first, in the room where you can see the line and the candidate at the same time.

Pippa proposes. You type. You press Enter. Frozen snapshot, no newline, no silent pick. Option+Tab shows candidates; Tab stays with the shell. A suggestion that submits is not a suggestion.

Code

A proposal's allowed life, and where it has to die·text
⌘K  ->  loopback Pippa endpoint  ->  candidates[]
         against frozen snapshot of the current line

insert(candidate)
  + writes the candidate text into the snapshot
  + never appends \n
  + never auto-picks when there is more than one
  + Option+Tab shows the list; you choose
  + Tab remains shell completion

# Stale snapshot
  PTY printed, or you typed, or the pane moved
  => discard candidates or re-ask
  => do not splice stale suffix onto live prefix

# Forbidden
  candidate ending in newline
  accept-on-timeout
  accept-on-Tab when Pippa owns Tab
  send(proposal) as door input
  run while the operator is not looking

External links

Exercise

Write two candidate strings Pippa might propose for a git situation you actually hit. For each, mark whether it is legal (no newline, insert-only) or illegal (contains Enter, or would auto-run). Then write the one-line UI copy that appears when the snapshot goes stale while the list is open, and name the chord that shows multiple candidates.
Hint
If your UI copy says "running the top candidate," you have built a silent pick. If you cannot name the chord, Tab has probably been stolen from the shell again.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.