jan-cli 0.12.0

YAML-defined CLI trees with progressive help, optional exec aliases, merged extra specs, and SQLite audit logging keyed by git branch
Documentation
# Changelog

## 0.12.0 — 2026-08-07

- Release 0.12.0


## 0.11.0 — 2026-08-06

### Added

- Remote jan trees: `jan use https://…/bundle.zip --sha256 <hex>` downloads a
  bundle, verifies the zip and `manifest.json` member hashes, unpacks under
  `~/.cache/jan/trees/<sha256>/`, and prefers that directory.
- Remote YAML `include:` entries with required `url` + `sha256` (optional `ttl`).
- Remote script leaves via `exec.url` + `exec.sha256` (optional interpreter
  `argv` prefix and `ttl`), using the same HTTPS fetch / SHA256 / TTL cache as
  wgex-inspired object storage under `~/.cache/jan/objects/`.
- `JAN_ALLOW_HTTP` / `--allow-http` to override HTTPS-only defaults.

### Security

- Remote content still executes with the user's privileges once preferred or
  included; hashes provide integrity, not publisher authentication.
- `jan bundle` fails if the tree contains remote includes (bundles stay
  self-contained).

## 0.10.0 — 2026-08-06

- Release 0.10.0


## 0.9.0 — 2026-08-06

- Release 0.9.0


## 0.8.0 — 2026-08-06

- Release 0.8.0


Entries describe behavior at the time of each release and are not current usage
instructions. See [README.md](README.md) for the supported interface.

## Unreleased

### Added

- Built-ins `jan list`, `search`, `show`, `validate`, and `audit` for inspecting
  the preferred tree and SQLite invocation log (semantic replacement for the
  retired `scripts-cli`).

### Changed

- Personal utilities are no longer nested under `jan-cli/generated/scripts/`.
  Prefer a flat tree such as `dotfiles/jan`. The old
  `generate_scripts_jan_spec.py` helper is retired.
- Removed the incubator `scripts` project dependency (`scripts/source`).

### Breaking

- Spec selection now uses only `jan use <DIR>`. Removed direct spec flags,
  spec-selection environment variables, cwd discovery, and well-known-directory
  fallback behavior.
- `jan alias` now emits bare `jan` command chains without embedded spec flags.

### Security

- Confined YAML includes to the preferred tree; hardened alias generation and
  bundle extraction; resolved executables before applying spec PATH entries.
- Documented that preferred trees are unsandboxed executable code and bundle
  manifest hashes do not authenticate publishers.

## 0.7.0 — 2026-08-04

- Release 0.7.0


## 0.6.0 — 2026-08-04

- Release 0.6.0


## 0.5.0 — 2026-08-04

- Release 0.5.0


## 0.4.0 — 2026-08-04

- Release 0.4.0


## 0.3.0 — 2026-08-04

- Release 0.3.0


## 0.2.0 — 2026-06-03

### Breaking

- Removed the bundled embedded default spec (`default.spec.yaml` compiled into
  the binary). At the time of this release, `jan` loaded specs from explicit
  flags, cwd-local files, or the well-known install directory. Those resolution
  modes were removed after 0.7.0; current versions use `jan use`.

### Added

- Added, at that time, a well-known spec directory and related environment
  overrides. These interfaces are historical and no longer supported.
- Script `path`, `dependencies`, `requires`, and `env` fields for PATH prepending, transitive script deps, external tool checks, and environment variables.
- `jan bundle` and `jan alias` built-ins for portable spec export and shell alias generation.

### Changed

- Example default command tree moved to `examples/default.spec.yaml` (install manually or via `jan bundle` / `jan-install.sh`).
- Used the now-removed direct flags, environment variables, cwd lookup, and
  well-known-directory fallback for spec resolution.

## 0.1.0

- Initial release with embedded default spec, YAML command trees, SQLite audit log, and extra-spec merging.