Skip to content

Releases: 20syldev/mn

1.3.0

Choose a tag to compare

@20syldev 20syldev released this 02 Nov 14:32
1.3.0
937e0e4

Major release for mn — personal dynamic terminal manual.

Updating from 1.1.x installs everything from 1.2.0, 1.2.1 and this release at once.

Changes

  • Alternate screen — menus are drawn in one buffered write, with no flicker, and your terminal is given back intact on quit, Ctrl-C, a crash or Ctrl-Z
  • Editors, less and ssh run outside it — they use the normal screen and return to the menu when they exit
  • Redraw on resize — the menu follows the terminal at once, without a key press, and Connexions re-lays its columns out
  • Ctrl-Z works — mn stops and resumes with fg, and an editor or pager you suspended no longer freezes the terminal
  • Wizards can always be cancelled — Ctrl-C or ! alone, and the way out is always shown on screen
  • No dead hotkeys in Config — the letters that did nothing are gone
  • Visible filter prompt — / shows what you type and Escape restores the cursor; Enter on a single match connects, and the footer says so
  • Help on the normal screen — it stays in the scrollback, and mn help also prints plain text into a pipe
  • Tall function scripts open in the pager
  • Maintenance mode — mn now receives regression and security fixes only

1.2.1

Choose a tag to compare

@20syldev 20syldev released this 02 Nov 14:32
1.2.1
0061261

Major release for mn — personal dynamic terminal manual.

Changes

  • One key reader for every screen — an arrow key no longer replays as letters (it used to open Delete or quit), and Space no longer counts as Enter
  • Shell files written inside a marked block — ~/.bash_aliases and ~/.bash_functions keep your own lines, a one-time .mn-bak backup is made, quotes and apostrophes are escaped, and a function named like an alias or a shell keyword can no longer break the file
  • Private hand-over file — the command to run after mn exits goes through a mktemp file in the runtime directory, never a fixed path in /tmp
  • Old connexion rows are hidden — records in the 1.1 format are never shown or completed, so an old password cannot end up as a handle
  • Uninstall is explicit — the checklist starts empty, each part is confirmed, and only what mn installed is removed
  • Safer plugins — names, versions and content are validated (foo, foo@1.2, foo@latest), a symlinked plugin is removed as a link, and nothing is fetched on a bad name
  • Updater that cannot downgrade — mn update stages the new tree, refuses an older version and never overwrites the running script in place
  • Installer hardened — private temporary files, checked downloads, current language, editor and repositories folder kept on a re-run, and a custom editor with shell metacharacters refused
  • Validated settings — names, CDN, editor, repositories root and connection IP are checked before use
  • Honest feedback — a failed delete or a failed regeneration of the shell files is reported instead of showing a success
  • Requires bash 4.1 — documented, and the negative array subscripts that needed 4.3 are gone

1.2.0

Choose a tag to compare

@20syldev 20syldev released this 02 Nov 14:31
1.2.0
df82131

Major release for mn — personal dynamic terminal manual.

Changes

  • Connexions rebuilt — every entry has a name, a command (via), a target, a user, aliases, an IP and a description; a column table shows the exact command line of the selected row, with u / U to pick the user, c for a command line and / to filter names, aliases and descriptions
  • Direct connection from the shell — mn co <name|alias> [user] and mn co -l, with completion of handles and users
  • Configurable repositories root — asked at install, changed from mn config, removed on uninstall
  • Safer data files — records are matched literally, written atomically, kept at mode 600 and sorted on their logical key
  • Module hooks in the menu engine — a module can prepare its rows, draw its own header and footer, handle its keys and receive its CLI arguments
  • Delete defaults to confirm — and a cancellation is now reported instead of silently returning
  • No TUI without a terminal — mn explains itself instead of drawing into a pipe
  • Documentation — the connexions format, the repositories root and the engine hooks are documented
  • New CDN address — install and update commands now point at dropr.sylvain.sh

1.1.2

Choose a tag to compare

@20syldev 20syldev released this 17 Aug 20:57
1.1.2
7fb98f0

Major release for mn — personal dynamic terminal manual.

Changes

  • Function scripts fall back to ~/.local/bin — when /usr/local/bin is not writable, scripts are created in the user directory instead of failing silently
  • sudo only for legacy root-owned scripts — editing goes through sudoedit (GUI editors get --wait automatically), deletion through sudo rm, with a clear error when it fails
  • Rollback on failed script creation — the entry is removed and no false success is shown, no more ghost functions in the list
  • Duplicate names refused when adding an entry — applies to all modules (connections, repos, aliases, functions)
  • PATH warning — a notice is shown when the scripts directory is not on your PATH
  • Ctrl-C at the sudo password prompt no longer closes the TUI

1.1.1

Choose a tag to compare

@20syldev 20syldev released this 20 Jun 17:32
7e057d8

Major release for mn — personal dynamic terminal manual.

Changes

  • Add mn plugin update — refresh an installed plugin's mn.sh in place, no remove-then-reinstall needed
  • Flexible update source — pull the new version from the CDN by default, or from a URL or local file
  • Shell completion for update — bash and zsh suggest installed plugins and file paths

1.1.0

Choose a tag to compare

@20syldev 20syldev released this 06 Jun 21:55
613b6f9

Major release for mn — personal dynamic terminal manual.

Changes

  • Installer rewritten with interactive TUI — language and editor selected with arrow-key pickers
  • Local repo detection in install.sh — copies files from local repo instead of downloading from CDN when run directly from the source directory
  • Install log saved to /tmp/ with ANSI escape codes stripped for readability
  • New checkbox_select UI component — navigate with arrows, toggle items with space or enter, confirm via dedicated button at the bottom
  • Uninstaller (delete.sh) rewritten with checkbox menu — selectively remove Core, Config, Data, or Plugins instead of all-or-nothing
  • Config → Uninstall uses the same checkbox menu — consistent UX inside and outside the TUI
  • sudo hint on permission denied — when /usr/local/bin/mn cannot be removed, the exact sudo rm command is shown instead of a silent failure

1.0.9

Choose a tag to compare

@20syldev 20syldev released this 06 Jun 18:08
1.0.9

Major release for mn — personal dynamic terminal manual.

Changes

  • Add plugin manager — mn plugin list, install, remove, info
  • Plugins loaded and validated at startup — plugins with missing binaries are silently skipped
  • Add plugin developer guide in PLUGINS.md

1.0.8

Choose a tag to compare

@20syldev 20syldev released this 06 Jun 18:08
1.0.8

Medium release for mn — personal dynamic terminal manual.

Changes

  • Add bash and zsh shell completions for the mn command
  • Modules and plugins discovered dynamically via their CLI_ARGS metadata
  • mn plugin subcommands completed — list, install, remove, info
  • mn plugin remove <TAB> lists installed plugin names
  • mn update installs completions to the appropriate system or user directory
  • mn uninstall removes completions from all possible locations

1.0.7

Choose a tag to compare

@20syldev 20syldev released this 06 Jun 18:08
1.0.7

Major release for mn — personal dynamic terminal manual.

Changes

  • Modules self-register with TYPE, MENU_LABEL and PRIORITY metadata properties
  • Main menu built dynamically from registered modules sorted by priority
  • CLI routing unified via _route_module — mn docs and mn config no longer hardcoded
  • Add _sort_modules_by_priority and _route_module to lib/module.sh
  • Footer detection simplified using mod_prop TYPE instead of looping ALL_MODULES

1.0.6

Choose a tag to compare

@20syldev 20syldev released this 06 Jun 18:08
1.0.6

Medium release for mn — personal dynamic terminal manual.

Changes

  • Fix SSH connection to exec directly without bash wrapper and sleep
  • Add configurable CDN source via mn config → [C] and MN_CDN variable
  • Switch to manifest-based updates — mn update downloads files from a manifest instead of a hardcoded list
  • Add distribution manifest listing all distributable files