Releases: K1-R1/smoosh
Releases · K1-R1/smoosh
smoosh v1.0.2
Fixed
.gitignoreauto-update no longer crashes on read-only repos when
--output-dirpoints outside the repository root. The.gitignorewrite
is now skipped (with a warning) since an external absolute path in
.gitignorewould be meaningless anyway.- README and
install.shheader comment no longer pin curl install URLs to
v1.0.0— now referencemainbranch so users always get the latest
install script.
Security
.gitignoreauto-update skips symlinks with a warning, preventing the
cp+mvpattern from overwriting the symlink target.install.shnow warns before falling back tosudofor installation,
making privilege escalation visible incurl | bashcontexts.- README manual install instructions now include SHA256 checksum
verification step. - Release workflow uses
$RUNNER_TEMPinstead of world-readable/tmpfor
intermediate files.
Added
- Table of contents in README for quick navigation.
- Uninstall section in README (Homebrew and manual paths, shadow binary
note). - Agent/CI usage section in README with JSON schema example, recommended
commands, and automation flags table. --no-colorflag documented in README configuration reference table.- Colour environment variable precedence documented (
--no-color>
NO_COLOR>FORCE_COLOR>CLICOLOR> TTY auto-detect). install.shenvironment variables documented in README (SMOOSH_VERSION,
SMOOSH_INSTALL_DIR,SMOOSH_NO_CONFIRM,SMOOSH_NO_VERIFY).- Agent/CI example added to
--helpoutput. - 3 new bats tests: external
--output-dirskips.gitignore, symlink
.gitignoreis not followed,--helpincludes agent example.
smoosh v1.0.1
Fixed
install.shnow aborts (exit 1) when the.sha256checksum file is absent,
rather than warning and continuing with an unverified binary. Set
SMOOSH_NO_VERIFY=1to opt out in restricted environments.--allmode now exits with a clear error when thefilecommand is not
found, rather than silently including all files without MIME filtering.- Exit codes 4 and 130 added to
--helpoutput (were documented in README
but missing from the inline reference).
Added
- 30 golden file tests covering byte-for-byte output across all mode and
format combinations (test/smoosh_golden.bats). test/ACCEPTANCE.md— manual acceptance test scenarios for interactive
mode, remote repos, AI tool integrations, and secrets detection.MAINTAINING.md— operational guide covering release procedure, pinned
dependency inventory, and periodic maintenance schedule.- Bash 3.2 syntax-check CI job on macOS (
/bin/bash -n smoosh). - Dependabot configured for monthly GitHub Actions SHA updates.
Changed
- CI and release workflow install shfmt via
go install(Go module sum
database) instead of a raw binary download, which had no integrity check. - Demo GIFs and VHS tape moved to
assets/directory.
smoosh v1.0.0
Added
- Core file aggregation with smart chunking at configurable word limits (default: 450,000 words)
- File type presets:
--docs(md, rst, txt, adoc, org, tex),--code(adds all code extensions),--all - Flexible filtering:
--include,--only,--exclude,--include-hidden - Interactive mode with repo scanning, category breakdown, and guided mode selection
- Remote repository support — pass any HTTPS, SSH, or bare
github.com/user/repoURL - Table of contents generation (
--toc) with per-chunk file index and word counts - Line numbers in output (
--line-numbers) - Multiple output formats: Markdown (default), plain text, XML with CDATA sections
- Basic secrets detection with clear scope messaging (AWS keys, GitHub PATs, PEM blocks)
- 100% file inclusion verification — exits 4 on any mismatch, never leaves partial output
- Dry run preview (
--dry-run) with accurate per-file word counts - Agent-native output:
--jsonfor structured JSON,--no-interactivefor CI/scripts - Differentiated exit codes (0–7, 130) for programmatic consumption
- Homebrew tap and curl installer (
install.sh) with SHA256 verification - 198 tests across 8 bats files
- CI: ShellCheck + shfmt lint + bats tests on Ubuntu and macOS
- GitHub Actions release workflow — auto-publishes release artefacts on tag push
- 256-colour sunset palette in interactive mode with box-drawing letter banner
- Output path shown relative to repo root
- Demo recordings: interactive mode flow and power-user flags