Skip to content
C.W.K.
Lesson 07 of 10 · published

Anvil on the Phone

~12 min · anvil, draft, phase, phone, pty

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

The Keyboard Is Smaller. The Contract Is Not.

Anvil on the phone uses the same preparation policy as the Mac: drafts stay outside the PTY; you copy, inspect, paste, press Enter; the app never synthesizes a newline. Fresh or continue or copy-only is still a named policy, not a vibe. Stable run, seat, and session bindings still have to match what you can see. A stale phase is still refused. The phone does not get automatic paste because the train is moving. Automatic paste is still a model-shaped write. Track 4 already held this line on the desktop so the pocket could inherit it instead of inventing a looser one.

Preparation lives in a native view, not in the emulator. The pane you watch is a seat's PTY, maybe already in a conversation. The draft is a document about a run. Those identities still do not equal. A pocket that pastes on attach because "you opened Anvil, you must mean it" is a pocket that submits seat A's prompt into seat B's pager. The smallness of the glass makes the mistake easier to miss, not cheaper.

Refuse a Stale Phase

Anvil runs have phases. A draft minted for preparation is not a draft for a seat that has already moved to judging, or to a later round, or to idle. The phone, after a lock, is especially good at holding a stale phase: the draft was in your pocket, the run moved on the Mac, you come back and the view still looks like work to submit. Refuse it. Name the mismatch. Let the operator copy anyway if they insist, but do not offer Enter-for-you, and do not hide the badge that says this phase is no longer the phase.

Stale is a clerk fact, not a guess about the text. Bindings — this run, this seat, this session id, this incarnation — are what you compare. Matching on the first line of the draft is how you accept a rewritten prompt that still starts with the same word. Matching on bindings is how you notice the run has moved even if the prose looks familiar.

The Draft Beside the Pane

Open Anvil from a phone and the seat panes are host sessions you can type into beside the Mac. The preparation view can be visible while you look. It cannot send. Focusing the right pane, then pasting, then pressing Enter yourself, is the same join as on the Mac, with a worse keyboard and the same duty. Unsupported harnesses stay unsupported. They are not auto-submitted as CLI arguments because the phone "cannot do the dance." If the dance cannot be done honestly, the harness is not a pocket harness.

Firebrand idle-resume, if it ever appears on the phone, wears this policy too: it carries no text at all, and a continue-host-work surface does not become a second composer. It is a window onto the host composer; any draft beside it is Anvil's. Copy is allowed. Flush is not. The last lesson's keystroke queue is not this draft; this draft cannot press Enter. Keep them in different views so a reconnect cannot confuse a thought you meant to save with a thought you meant to submit.

Same preparation policy on the phone: drafts outside the PTY, refuse a stale phase. The smaller keyboard is not a license to auto-paste or auto-Enter. Bindings, not first lines, decide what is stale.

Code

Pocket Anvil, same join, extra staleness·text
phone Anvil view
  draft (run, seat, phase, session id, incarnation)
  copy button
  warn if bindings != pane.bindings
  refuse (badge, no Enter-for-you) if phase is stale
  still may copy if operator insists

pane (host PTY)
  an input surface beside the Mac
  paste is a human act
  then Enter is a human act

# Stale examples
  draft.phase = prepare,  run has moved to judge
  draft.session = S1,     daemon incarnation changed
  draft.seat = author,    pane is now judge

# Still forbidden, now in a pocket
  auto-paste on attach
  auto-Enter because keyboard is annoying
  CLI-argument submit for unsupported harnesses
  flushing an offline keystroke queue into this draft's Enter

External links

Exercise

A prepare-phase draft for seat Author sits in your pocket. On the Mac the run has moved to judge. You unlock. Write the badge you should see, the acts that still work (copy? paste? Enter-for-you?), and the one sequence that would still be honest if you insist on pasting anyway. If Enter-for-you is in the working set, the phone has a looser contract than the Mac.
Hint
Badge names the phase mismatch. Copy may remain. Focusing the pane and pasting is on you. Enter is on you. The app offers neither newline.

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 in — Please sign in to comment.

No comments yet — be the first.