Skip to content

Releases: cuonggt/omassh

v0.16.0

Choose a tag to compare

@cuonggt cuonggt released this 21 Sep 10:29

The wheel scrolls the session in the main pane. It reached nothing there
before, and a wheel that reaches nothing is not harmless: unless an application
is asking the terminal for the mouse, a terminal sends arrow keys for a wheel
on the alternate screen — so scrolling a session answered with the commands you
last ran. It goes back through the session's own output now, three lines to a
notch, with ctrl+\ k and ctrl+\ j still paging a screen at a time and
anything typed still snapping back to the live view.

omassh has to ask the terminal for the mouse while a session has the keyboard
to be given the wheel at all, where before it left the mouse alone there. So
selecting text in a session with the mouse is now the terminal's own modifier —
shift in most of them, as it is under tmux.

Changelog

  • ddaa7cb Scroll a session's output with the wheel, rather than typing arrows into it

v0.15.1

Choose a tag to compare

@cuonggt cuonggt released this 19 Sep 10:36

Changelog

  • 806391d Draw a session's output as it arrives, and stop asking tmux on every key
  • c5e8764 Give ctrl+b to the session instead of omassh's tmux

v0.15.0

Choose a tag to compare

@cuonggt cuonggt released this 18 Sep 07:52

The terminal's own colours. With no theme chosen, Omassh now draws in your
terminal's colours rather than a scheme of its own: its text colour, the sixteen
colours its scheme sets, and its own reverse video for the row under the
cursor. It looks like the rest of the terminal, reads on a light background as
well as a dark one — tokyonight's pale text was hard to make out on
Terminal.app's white — and changes when the terminal's scheme does. Form fields
and the search box follow the theme now too. tokyonight, gruvbox, nord and mono
are still under T, and a config that names one keeps it.

A palette of your own can use the terminal's colours as well: a number from 0
to 255, or default for its text colour, which as selected_bg means its own
highlight. Colours a palette leaves out now come from terminal rather than
tokyonight, so a palette that only changed its accent will look different.
Under the original Solarized Dark, whose grey is its background, dim text and
borders disappear; text_dim: 10 and border: 10 bring them back.

Stricter about colours in the config file. Every palette under themes: is
now checked at startup, not only the one in use, and a hex colour without its
quotes — which YAML reads as a comment, so it silently did nothing — is refused
with the quotes it needs. A config that loaded before can now stop omassh at
startup, with the line and what to write instead.

Changelog

  • 0559548 Check every palette, and refuse a hex colour YAML read as a comment
  • 7775336 Draw in the terminal's own colours unless a theme says otherwise
  • 5dc6865 Hold the Linux jobs on Ubuntu 24.04, so moving on is a commit of its own
  • 286cb6d Move the workflow to checkout and setup-go v7, off the retired Node 20
  • e4fd673 Record the demo again, in the terminal's own colours
  • d82e8a6 Stop the notes saying the host list reads ~/.ssh/config

v0.14.3

Choose a tag to compare

@cuonggt cuonggt released this 16 Sep 08:01

Changelog

  • f84e7f5 Assert what tmux reliably reports about a killed tunnel, and no more
  • 108fc3a Bring a key to the snippet smoke tests, rather than borrow one from ~/.ssh
  • 5e9d0cb Call a tunnel that died on its own a failure, whatever tmux recorded
  • 3681872 Correct what the notes say about buckets, the chokepoint, and the probe
  • 1dfb8d5 Drop a stale sentence describing the rule it replaced
  • e91a313 Record a demo that shows credentials and snippets, and a tape that reaches them
  • 0f59514 Refuse a document that names the same credential twice
  • 02a211f Run the suite on both platforms on every push, rather than by hand
  • 18dfad0 Stop the suite assuming the machine it was written on
  • d6c3da4 Wait for a dialog to go, rather than for what was always behind it
  • 224d1a5 Wait for the browser's own keys, which a half-drawn frame cannot fake

v0.14.2

Choose a tag to compare

@cuonggt cuonggt released this 15 Sep 10:32

One thing the interface was saying wrong.

A host omassh could not reach at all reported exit 255 from a snippet run.
That is ssh's own failure status, not the script's, and it read as a script
that had run and failed on a machine the connection never got to. Such a host
now says it could not be reached, with ssh's own reason for it — refused,
timed out, key rejected — where the result was already shown.

unreachable  ·  could not connect
  ssh: connect to host 10.0.1.1 port 22: Connection refused

A script that genuinely exits non-zero is unchanged and still shows its status.

Changelog

  • fd05a14 Say a host was never reached, rather than giving ssh's status as the script's
  • 9b02ab3 Hold the lock where a sweep's callbacks are counted, and skip beside the assertion

v0.14.1

Choose a tag to compare

@cuonggt cuonggt released this 15 Sep 09:44

A fix for one thing 0.14.0 got wrong, on databases that have been in use for a
while.

Omassh had snippets once before, and that version called the script a
command. A database still holding a record shaped that way read it back as a
snippet with no script at all: a blank row in the list, a form that would not
save what it had been handed, and — the one that matters — an export writing
script: "" that omassh import then refused. Omassh turning down a file it
had just written itself.

The record now reads as the one-line snippet it always was, and saving it
writes it in the current shape, so the old field goes by being used rather than
by a migration nobody can see.

Nothing else changed. If your list has no snippets in it, 0.14.0 was already
fine.

Changelog

  • e188c06 Read a snippet the older omassh wrote, which called the script a command

v0.14.0

Choose a tag to compare

@cuonggt cuonggt released this 15 Sep 09:31

Snippets. A script worth running again is typed once and given a name. S
lists them; ↵ runs one on the host in front of you, on a whole group, or on
any set you tick off, showing the script and asking before anything happens.
Results fill in a row per host as they arrive, four hosts at a time, and ↵ on
a row opens what that host said in full. esc stops a run and keeps what has
already come back.

A run allocates no terminal, so sudo asking for a password fails rather than
waits. p is the other half: it pastes a snippet into the session in the main
pane and stops there, for the things a run cannot do. Longer scripts are edited
in $EDITOR on ctrl+e.

Snippets travel through omassh export like everything else — the script
exactly as written, which is also the reason a password belongs in a credential
and never in a script.

Two fixes alongside it. A pane on a machine without tmux no longer prompts for
a password it had already been given, and a list carrying credentials or
snippets now tells an older omassh to upgrade instead of complaining about a
key it has never heard of.

Changelog

  • 4e9dcd1 Add the snippet list, and give a script too long for a field to $EDITOR
  • a532aaa Carry snippets between machines, and say so when a file needs a newer omassh
  • 8f39796 Choose where a snippet runs, and read the results host by host
  • ceb708d Deliver a paste as a paste, so a script does not run a line at a time
  • 15e37bd Keep a script worth running again, so it is typed once
  • c3bd219 Paste a snippet into the open session with p, for what a run cannot do
  • 81384ed Press S at the real binary, and give $EDITOR a file that ends in a newline
  • 4df0db1 Run a script across many hosts, a few at a time
  • b9bd7f6 Run a script on a host over ssh, and keep what it said
  • e41ddf1 Run the Linux half on Linux, rather than trusting a fake to agree
  • b8ae01a Show what a snippet said, and let esc stop one that is still going
  • 98c7ca6 Stop a pane without tmux from asking for a password it already has
  • bd71da2 Write down what a snippet is, and what a run cannot do

v0.13.3

Choose a tag to compare

@cuonggt cuonggt released this 15 Sep 04:58

Changelog

  • a9ad1fa Read secret-tool's own answers, rather than the ones this assumed it gave

v0.13.2

Choose a tag to compare

@cuonggt cuonggt released this 15 Sep 04:20

Tests only. Nothing in omassh itself changed between v0.13.1 and this one — the binaries behave identically. What is new is a test that drives the built binary against a real SSH server in a terminal, which is the thing that would have caught the two bugs v0.13.1 fixed. Upgrading from v0.13.1 gains nothing, and staying on it misses nothing.

Changelog

  • e0b80dd Test the program as it ships, not only the packages it is made of

v0.13.1

Choose a tag to compare

@cuonggt cuonggt released this 15 Sep 03:39

Changelog

  • c1a86f8 Carry a password credential into the command tmux keeps, not the one it replaces
  • 662f9da Give the keychain no terminal to prompt on, and no prompt to hang on