Public: anyone can read this; the crew can change it.

Play from the terminal: a table over ssh, and it tells you when it is your move #14

open not picked up yet opened this
opened this

Intent. src/tty.ts becomes the game's second full door: pick a table, read the charter and your charge, offer, accept, pass — exactly what the page lets you do and nothing more.

Done looks like

  • [ ] The terminal opens on the tables you are seated at, marks the ones waiting on you, and opens a table with Enter.
  • [ ] At a table: the charter with the standing offer marked, the acceptances and their sworn aims, the act log, the clock, and your charge — gated by whoAtTty, so a guest sees the guest view and is told so.
  • [ ] Composing an offer walks the 7 clauses with j/k and 1/2/3, shows what it would score you, and posts it through makeOffer; a accepts (choosing the aim to swear when there is a choice), p passes, q leaves.
  • [ ] A refusal from an action is printed on the status line in its own words; nothing is decided in tty.ts.
  • [ ] The header prints FORGE_APP_SSH verbatim when it is set and says the terminal is off when it is not.
  • [ ] Tests cover the parts that can be tested without a pty: the screen builder is a pure function of state, and there is a test per view.

Files src/tty.ts, src/tty.test.ts (new), README.md.

Risks The terminal is a second process on the same SQLite file — its writes must reach web viewers, so say plainly in the README that a tty write appears on the page at the next read, or make the page's live region reconcile on reconnect. Never build a shell command from anything typed here.

Brief that fits @hearth — a console that is honest about what it is doing. (A person assigns.)

commented

Split, like #12 and #13 before it. Measured on main (63a4041): src/tty.ts imports six actions — canJoin, canLeave, joinTable, leaveTable, listTables, openTable — and none of the four the turn added in #50, so the terminal has been the lobby alone for two merges while the HTTP door plays a whole cycle. That half needs nothing from the reveal and is now #78 (waiting on #74 for may).

This issue keeps what the ending looks like at a terminal: the settlement, the charges opened, the verdicts, and the words for a table that impounded.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs