Having the origin at the top left instead of the bottom left is more
conventional and ergonomic. The only thing this complicates is
prompt-specific logic, where we care about the coordinates of the
bottom-most line on the screen.
For that reason, the bulk of the changes here are in vere, where we
treat the bottom-most line specially, drawing the spinner onto it.
Webterm is likewise updated to account for the new coordinate system.
Drum now opts to accept clicks anywhere on the screen, and does its best
to move the cursor as close to the clicked location as possible (within
the confines of the prompt).
Presumably due to how js non-objects work in closures, the selected prop
we were reading out whenever a blit came in was stale.
Also, it was possible that a bell was hiding inside a %mor blit, so we
add a small helper for checking properly.
%rez has always used "width & height". Certainly, "x & y" is more
standard than "row & column". As such, we settle on making %hop and %hit
respect the more natural ordering. This change is safe because these
interfaces haven't made it to livenet yet.
When adding a session, using this special syntax will create a new session for the indicated agent.
E.g., `book!my-session` opens a new session for the %book agent.
When creating a new session, validate that it meets the following conditions:
- must start with an alphabetical
- can be composed of alphanumerics with hyphens
- can be length 1 or longer
- cannot begin or end with a hyphen
Fully implements webterm support for multiple dill terminal sessions.
Remaining work includes styling, session creation safety (name-wise),
and general cleanup.
Co-authored-by: tomholford <tomholford@users.noreply.github.com>
Co-authored-by: liam-fitzgerald <liam@tlon.io>
Resolves a good number of conflicts. Most notably, re-propagates removal
of gall's %onto, confirms new /app/herm behavior, coerces hood/drum
state adapters back into place, and updates webterm to use the latest
api.