All notable changes to server-scripts-cli will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.3.3 - 2026-08-12
ssc.sh,install.sh, andgenerate-manifest.shwere not executable in the repository. All three carry a shebang line, but were tracked with mode644, so running them directly (./ssc.sh list, as shown in the README) failed withPermission denied— the exact symptom already documented as a workaround indocs/TROUBLESHOOTING.md. Mode is now755in the repository, so a fresh clone works without a manualchmod +xstep.
1.3.2 - 2026-08-09
- GitHub issue template configuration (
.github/ISSUE_TEMPLATE/config.yml): disables blank issues and routes security reports to GitHub Security Advisories and general questions to Discussions.
- ShellCheck now runs at
warningseverity in CI, up fromerror. This is the threshold the project always intended; see the note under Fixed for why it was never in effect. All existing findings were resolved first, so the stricter gate starts green. - Release workflow builds its release notes from the matching
CHANGELOG.mdsection instead of from commit messages, and moves fromsoftprops/action-gh-release@v1to@v2. Because this project's commit messages are barevX.Y.Zlines, generated notes carried no information.
severity=warningin.shellcheckrcnever had any effect. ShellCheck has noseveritydirective for its configuration file and discards unknown keys without a diagnostic, so the line read as the project's binding threshold while doing nothing. Verified by substituting an invented key, which behaved identically. The threshold now lives in.github/workflows/lint.yml, and the configuration file documents why it cannot live there.- Six ShellCheck findings that the previous
errorthreshold hid: SC2155 inssc.sh,generate-manifest.shandexamples/demo-scripts/backup-example.sh(declare and assign separately), SC2034 for an unusedCYANingenerate-manifest.sh, SC2088 for a tilde inside a quoted message ininstall.sh, and three SC2295 quoting findings ingenerate-manifest.sh. The tree is now clean at ShellCheck's default severity, not merely atwarning. - SC2064 on the
trapingenerate-manifest.shis suppressed with a stated reason rather than "fixed": the suggested single-quoted form defers expansion until the trap fires, by which time thelocaltemp_fileis out of scope, so it would delete nothing and leak the temporary file. - Four dead links in this changelog.
compare/v1.3.0...HEAD,compare/v1.0.0...v1.1.0andreleases/tag/v1.0.0all pointed at tags that were never created. Version headings without a tag are now deliberately unlinked, with an HTML comment above the link block explaining why. - Version strings across
ssc.sh,generate-manifest.sh,install.sh, the README badge andmanifest.yamlare synchronised again. They had drifted to four different values, withssc --versionreporting1.2.0while the newest release commit wasv1.3.1. .shellcheckrcno longer carries a header describing unrelated private infrastructure.
CONTRIBUTING.mdnames the exact ShellCheck invocation CI uses, including the note that the threshold is set in the workflow rather than in.shellcheckrc.docs/MANIFEST_SCHEMA.md:metadata.versionis the version ofgenerate-manifest.shthat wrote the file, not a schema version.CHANGELOG.md: the 1.3.1 entry is in English, matching the rest of the file.
README.md: Last-Commit badge.
- CI/CD pipeline with GitHub Actions
- ShellCheck linting workflow (severity: error)
- Bash syntax validation workflow
- Automated release workflow (tag-triggered)
.shellcheckrcconfiguration (Best Practices 2025)- CI status badge in README.md
- All bash scripts now validated on every push to main branch
- Automated GitHub Releases on version tags
1.2.0 - 2026-01-20
- Automated Installer (
install.sh): One-liner installation with 3 modes--local: Add alias to ~/.bashrc (default)--user: Symlink to ~/.local/bin--system: Install to /usr/local/bin (requires sudo)- Prerequisites check (Bash 4.0+, yq, git)
- Color-coded logging and idempotent execution
- Contributing Guide (
CONTRIBUTING.md): Fork → Branch → PR workflow - Security Policy (
SECURITY.md): Vulnerability disclosure process - Code of Conduct (
CODE_OF_CONDUCT.md): Contributor Covenant v2.1 - GitHub Issue Templates: Bug Report and Feature Request templates
- GitHub PR Template: Standardized pull request format
- Subdir Navigation:
docs/README.mdandexamples/README.mdindex files
- README.md: Complete overhaul
- Added 7 professional badges (Version, License, Bash, Platform, Maintenance, YAML, Contributions)
- One-liner installation as primary method
- Manual installation moved to collapsible
<details>section - New "Contributing" section with links to community docs
- Updated Documentation and Examples sections with index links
- Added
docs/README.md- Documentation index with file descriptions - Added
examples/README.md- Demo scripts overview with usage guide
1.1.1 - 2026-01-17
- HIGH: Generator now supports
examples/demo-scripts/directory as fallback whenscripts/doesn't exist (#codex-high)- Enables testing generator in standalone demo repository without manual setup
- Priority-based directory search:
scripts/first, thenexamples/demo-scripts/
- MEDIUM: Fixed type taxonomy inconsistency - removed
cli-tooldefault type, changed toadmin(#codex-medium)- Default type changed from
cli-tooltoadmin(Tier 1 type) - Updated CLI help text to show valid type examples
- Default type changed from
- MEDIUM: Added auto-migration for deprecated
cli-tooltype →adminwith warnings (#codex-medium)- Non-breaking change: existing scripts with
type: cli-toolauto-migrate - Warning messages guide users to update YAML frontmatter
- Non-breaking change: existing scripts with
- LOW: Synchronized version strings across all files to v1.1.1 (#codex-low)
- Generator now scans directories in priority order:
scripts/first, thenexamples/demo-scripts/ - Default type for scripts without frontmatter changed from
cli-tooltoadmin - Updated CLI help text (
ssc list --help) to removecli-toolreferences
- Type
cli-toolis now deprecated - usedeployment: cli-toolfield instead - See MANIFEST_SCHEMA.md for migration guide
- Added "Deprecated Types" section to MANIFEST_SCHEMA.md
- Added migration examples and behavior documentation
1.1.0 - 2026-01-16
- 4-Tier Type System: Organize scripts by usage pattern
- Tier 1 (Interactive):
report,admin,diagnostic,check,orchestrator - Tier 2 (One-time):
deploy,setup,migration,generator,benchmark - Tier 3 (Background):
daemon,scheduled,exporter - Tier 4 (Internal):
library,helper
- Tier 1 (Interactive):
- Smart Default Filtering:
ssc listshows only Interactive types (Tier 1) by default - New
--allflag: Show complete script list including all tiers - Enhanced Help Text: Detailed type hierarchy documentation in
ssc list --help - Color-Coded Types: Visual distinction between tiers (Green/Yellow/Cyan/Magenta)
- New Type:
benchmark: Performance testing scripts (Tier 2)
- Demo Scripts Updated: Migrated to new type system
backup-example.sh:backup→adminmonitoring-example.sh:monitoring→checkhealth-check.sh:validation→checkdeploy-example.sh:automation→deploy
- Manifest Schema: Updated with complete type hierarchy documentation
- README: Enhanced feature list and examples
- Legacy types (
automation,backup,monitoring,validation) still supported but superseded by new types
- Initial public release
- Core commands:
list,run,info,status,logs,validate,generate - YAML manifest-based script discovery
- systemd integration for status and logs
- Category and status filtering
- Search functionality
- Security: Input validation, safe execution, requires_root detection
- Demo scripts: 4 examples (backup, monitoring, health-check, deployment)
- Complete documentation suite
- MIT License