Repository navigation
Gloss v0.1.1
Gloss v0.1.1 is a major usability, safety, and distribution update. It improves command organization and navigation, adds bulk actions and secure updating, hardens local storage and managed aliases, and introduces reproducible releases for macOS and Linux.
New
- Added command multiselection in the TUI.
- Added bulk tag editing for selected commands.
- Added copying the focused command directly to the clipboard.
- Added category jumping with
[and]. - Added Page Up, Page Down, Home, and End navigation.
- Added a complete, scrollable command-shortcut reference with
?. - Added
gloss updateto check for the latest stable release. - Added
gloss update --installfor verified self-updates of standalone installations. - Added optional automatic update checks.
- Added first-launch update-check onboarding and a corresponding Settings option.
- Added support for installing through
go install.
Automatic checks are opt-in, run in the background at a limited interval, remain quiet when Gloss is current or offline, and never install updates automatically.
Commands and tags
- Added shared tag normalization across storage, CLI, filtering, and the TUI.
- Made exact tag filtering case-insensitive.
- Added deterministic ordering by primary tag, with untagged entries handled consistently.
- Improved command grouping and sorting.
- Preserved the focused command by database identity when filtering, resizing, or refreshing the list.
- Added reliable viewport scrolling for long and wrapped command descriptions.
- Improved behavior when navigating filtered or changing command lists.
- Reworked CLI dispatch so direct commands can run without unnecessarily launching or initializing the TUI.
Interface improvements
- Added responsive wide, medium, narrow, and compact command layouts.
- Improved command, alias, scan, settings, and detail-screen spacing.
- Added clearer focus, selection, and multiselection states.
- Added concise status messages for copy, selection, bulk-tag, and update actions.
- Improved footer shortcuts and context-sensitive help.
- Improved wrapped command descriptions and narrow-terminal behavior.
- Fixed home-screen navigation and several focus and cursor inconsistencies.
Storage integrity
- Made batch command creation transactional.
- Made scan imports atomic, preventing partially imported batches after a failure.
- Ensured updates receive fresh UTC timestamps.
- Added consistent tag persistence and retrieval behavior.
- Restricted the Gloss configuration directory to
0700. - Restricted configuration and database files to
0600. - Added rollback, timestamp, permissions, and scan-import coverage.
Managed alias safety
- Added strict portable alias-name validation using the Bash/zsh identifier format.
- Rejected invalid alias names and alias targets containing NUL bytes.
- Changed managed alias rendering to safe shell-literal quoting.
- Correctly escaped embedded single quotes in alias targets.
- Applied the same validation across CLI, TUI, storage, and shell synchronization.
- Preserved managed-block replacement, backups, and no-op synchronization behavior.
Secure updater
-
Added stable semantic-version discovery through GitHub Releases.
-
Added platform-specific updates for:
- macOS Intel
- macOS Apple Silicon
- Linux AMD64
- Linux ARM64
-
Added SHA-256 verification before archives are inspected or installed.
-
Added strict checksum-manifest parsing.
-
Added strict ZIP layout validation and archive traversal protection.
-
Added download and extracted-binary size limits.
-
Required HTTPS except for loopback test servers.
-
Added atomic executable replacement that preserves the existing installation if replacement fails.
-
Prevented self-update from replacing Homebrew-managed or otherwise unsuitable executables.
-
Directs Homebrew users to:
brew upgrade Architeg/tap/gloss
Installer and distribution
-
Corrected the Go module identity to:
github.com/Architeg/gloss -
Established Go 1.25 as the build baseline.
-
Added a production release builder for four supported platform archives.
-
Added deterministic ZIP generation and
checksums.txt. -
Added validation of the exact expected five-file release set.
-
Added a tag-triggered GitHub release workflow.
-
Added version metadata validation for tagged builds.
-
Added a secure installation script with checksum and archive validation.
-
Changed the default script installation directory to:
~/.local/bin -
Restored optional automatic PATH configuration for zsh and bash.
-
Added support for custom installation directories, including paths containing spaces or shell-sensitive characters.
-
Prevented duplicate PATH entries across repeated installations.
-
Added safe handling for missing, symlinked, or nonregular shell configuration files.
-
Improved noninteractive installation when no controlling terminal is available.
-
The installer never invokes
sudo.
Fixed
- Fixed tag comparisons and ordering being implemented differently across screens and storage operations.
- Fixed selection drifting to a different command after filtering or list changes.
- Fixed scrolling failures with wrapped or variable-height command rows.
- Fixed command descriptions being truncated or poorly arranged in narrow terminals.
- Fixed unsafe double-quoted managed alias rendering.
- Fixed non-atomic scan imports.
- Fixed installer PATH prompts when used through
curl | bash. - Fixed installer PATH writes for zsh and bash.
- Fixed installer tests hanging when launched from an interactive terminal.
- Fixed repeated installations adding duplicate shell configuration entries.
- Fixed shell detection when
$SHELLcontains only a shell name or a nonstandard path.
Testing and reliability
- Added comprehensive tests for tags, storage transactions, permissions, aliases, clipboard behavior, navigation, responsive layouts, multiselection, bulk tags, updates, release artifacts, and installation.
- Added isolated installation tests for local scripts, commit-specific scripts, tagged scripts, and published-style release assets.
- Added validation of all four platform archives and their checksums.
- Added race-enabled coverage for the affected packages.
- Improved installer subprocess isolation and timeout handling.
Installation
Homebrew:
brew install Architeg/tap/glossInstall script:
curl -fsSL https://raw.githubusercontent.com/Architeg/gloss/main/scripts/install.sh | bashGo:
go install github.com/Architeg/gloss/cmd/gloss@latestIf the installation directory is not already in PATH, the interactive installer offers to update .zshrc or .bashrc. You can decline and apply the printed command manually.
Development scope
This release covers all ten development phases:
- Module identity and Go baseline
- Shared tag behavior and ordering
- Storage integrity and permissions
- Early CLI dispatch
- Managed alias safety
- Command identity, navigation, and scrolling
- Responsive UI, selection, bulk tags, and clipboard
- Secure updater and automatic checks
- Installer and release automation
- Isolated installation and distribution validation