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

Anvil on the Phone

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

Level 0Spark
0 XP0/36 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.

Spectator First, Then the Draft

Open Anvil from a phone and you are still a spectator on the host sessions until Take Control. The preparation view can be visible while you watch. It cannot send. Taking control, then pasting, then Enter, 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. A continue-host-work surface does not become a second composer. It becomes a window onto the host composer, with a draft beside it. 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)
  spectator until Take Control
  then 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 Take Control 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. Paste after Take Control 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 inPlease sign in to comment.

No comments yet — be the first.