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

Spectator Is the Default

~11 min · spectator, default, lease, copy, watch

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

Opening Is Not Taking the Keyboard

Opening a session from a phone is not taking the keyboard. You browse the daemon's sessions. You watch one. You copy. That is the default, and it has to be the default or you will never open a live Anvil seat from a pocket. A live seat is someone else's conversation, or your own from an hour ago, still typing on the Mac. If observation could type, there would be no lease. If observation could resize, the Mac layout would no longer be owned. If observation could terminate, a glance would be a close. The default is read-only because the alternative is a pocket that is unsafe to unlock.

Browse is a list of identities the daemon already knows: titles, hosts, whether anyone currently holds input. Watch is attaching as a subscriber to journal plus live, with fit-or-pan drawing. Copy is selecting text from the view or from retained output. None of those send a byte to the child. None of those mint a lease. A badge that says "you are watching" is chrome telling the truth. A cursor that blinks as if you could type is chrome telling a lie, unless you have taken control.

What a Spectator Is Forbidden

No input. No terminal replies (a mouse report is input; a bracketed-paste reply is input). No resize. No terminate. Those four are one family of writes. People remember typing and forget the other three. A spectator who can send a mouse event into vim has typed. A spectator who can SIGWINCH has typed. A spectator who can close a pane has closed, which is a kill, from a glass that was supposed to be a window.

The Mac can be a spectator too, once a phone holds the lease. The default is not "phone is spectator, Mac is god." The default is "whoever just attached is a spectator until they say otherwise," including a Mac window that reopened onto a session a phone is already driving. That symmetry is how you do not get a character from each glass in the same command. Track 5's two-visible-not-two-writers rule is this default, applied to an iPad. Here it is named as the product's opening posture, on every glass.

Watching Has to Be Useful or the Default Dies

If a spectator cannot read, cannot scroll retained output, cannot copy, they will take control just to see, and the default becomes a speed bump. Usefulness is how the default survives. The journal from Track 2 is load-bearing here: catch-up is a prefix, honestly labeled, side effects suppressed. A spectator who arrives ten minutes late should see what is still retained, not a blank, not a reconstructed lie, not a prompt that re-fires a bell.

You should be willing to open a live seat on a train because watching is cheap and taking control is explicit. If you are not willing, the default is either too weak (watching cannot see) or too strong (watching can kill). Measure the default by whether a glance feels safe. Safe glances are the whole point of a pocket surface on a host fire.

Spectator is the default: browse, watch, copy. No input, no resize, no terminate. If observation can write, there is no lease, and you will never trust a live seat from a pocket.

Code

The opening posture, on every glass·text
on attach:
  role        = spectator
  may         = list sessions, subscribe, fit/pan, scroll, copy
  may not     = input, mouse/terminal replies, resize, terminate
  lease       = none minted
  chrome      = "watching" not a blinking lie-cursor

# Useful spectator (default survives)
  journal prefix replayed, side effects off
  copy from view and from retained output
  titles, host, who-holds-input visible in the list

# Useless spectator (default dies; people take control to see)
  blank screen until Take Control
  no copy
  no scrollback

# Dangerous spectator (default was a lie)
  keystrokes go through
  rotation resizes
  swipe closes a pane

External links

Exercise

Write a two-minute pocket visit to a live Anvil seat you do not want to disturb: what you open, what you copy, what you refuse to do. Then list three gestures a scared implementation might wire to "help" (swipe close, rotation resize, tap-to-type) and one sentence of chrome that should appear instead of each gesture working.
Hint
If your visit required Take Control to read a line, watching is not useful. If your visit could kill the seat, watching is not a spectator.

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.