Skip to content

v0.4.3

Choose a tag to compare

@deeplook deeplook released this 08 May 13:46
· 232 commits to main since this release

Changed

  • Secret flags removed--github-token, --ssh-password, and --password
    flags have been removed from all commands. Use the $GITHUB_TOKEN / $SSH_PASSWORD
    environment variables or the --github-token-file, --ssh-password-file, and
    --password-file options instead. This prevents secrets from appearing in shell
    history and process listings.
  • SSH_KEY and SSH_PASSWORD environment variables removed — SSH credentials
    are now resolved via --ssh-key / --ssh-password-file flags, ~/.ssh/config
    IdentityFile, the ssh-agent, or an interactive prompt. The non-standard env vars
    are no longer read.
  • --logscale renamed to --log-scale — the flag now follows the standard
    CLI convention of hyphen-separated words.
  • --top -n short form removed (dirplot metrics) — -n is conventionally
    reserved for --dry-run; use --top N directly.
  • --range -r, --max-commits -n, --workers -w short forms removed (git,
    hg) — these single-letter aliases conflicted with conventions or were too obscure
    to warrant a shorthand.
  • --colormap -c, --subtree -s, --breadcrumbs -b/-B, --k8s-namespace -N
    short forms removed
    — single-letter flags reserved for commonly-used options per
    CLIG guidelines.
  • Status messages now always go to stderr — info lines from dirplot map and
    the "Watching … (Ctrl-C to stop)" line from dirplot watch previously went to
    stdout in some cases; they now consistently go to stderr.
  • $COLUMNS / $LINES honoured for terminal size — when ioctl and
    os.get_terminal_size() are both unavailable (CI, SSH sessions, scripts), the
    standard $COLUMNS and $LINES environment variables are now checked before
    falling back to the hardcoded 160×45 default.
  • dirplot map with no arguments shows help — running dirplot map without
    paths or piped input in an interactive terminal now prints the command help instead
    of an error.

Added

  • dirplot metrics command — scans any source supported by dirplot map
    (local, SSH, S3, GitHub, Docker, Kubernetes, archives, stdin) and prints a
    structured text summary:
    • File and directory counts (with empty-directory count)
    • Total size (human-readable)
    • Maximum tree depth and scan time
    • Top N file extensions with file count and total bytes
    • Largest N files and directories, each with its percentage share of total size
  • --sort-by count|size on dirplot metrics — controls extension ordering;
    count (default) sorts by number of files, size sorts by total bytes.
  • --top N on dirplot metrics — caps the number of entries shown
    in each list (extensions, largest files, largest dirs). Default: 10.
  • --json / --no-json on dirplot metrics — outputs all metrics as a
    structured JSON object, suitable for piping into jq or scripts.
  • --metrics / --no-metrics on dirplot map — prints the full metrics
    block after scanning, before rendering. Lets you get treemap and metrics in
    a single pass without running two commands.
  • tree_metrics(root_node, t_scan, top_n, sort_by) → str in
    dirplot.scanner — public API returning the human-readable metrics string.
  • tree_metrics_dict(root_node, t_scan, top_n, sort_by) → dict in
    dirplot.scanner — public API returning a structured dict with all metrics;
    the source of truth for both the text and JSON outputs.

Changed

  • --log/--logscale merged into a single --logscale parameter — the
    boolean --log/--no-log flag has been removed from all commands (map, watch,
    git, hg, replay). Pass --logscale <ratio> (any value > 1) to enable
    log-scale layout compression; omit it or pass 0 to disable. The default is 0
    (disabled). The ratio controls the max/min layout-size ratio of leaf files after
    transformation.

Fixed

  • dirplot overview command — Resolves app name/description/version from
    importlib.metadata so the overview output shows richer context without requiring
    manual wiring.

  • macOS Keychain error during git clonegit clone is now invoked with
    -c credential.helper= to suppress the system credential helper. This prevents
    the -25308 Keychain error in non-interactive environments (CI, sandboxed runs).
    Private repos are unaffected because the GitHub token is embedded directly in the
    clone URL, so no credential helper is needed regardless.