v0.4.3
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-fileoptions instead. This prevents secrets from appearing in shell
history and process listings. SSH_KEYandSSH_PASSWORDenvironment variables removed — SSH credentials
are now resolved via--ssh-key/--ssh-password-fileflags,~/.ssh/config
IdentityFile, the ssh-agent, or an interactive prompt. The non-standard env vars
are no longer read.--logscalerenamed to--log-scale— the flag now follows the standard
CLI convention of hyphen-separated words.--top -nshort form removed (dirplot metrics) —-nis conventionally
reserved for--dry-run; use--top Ndirectly.--range -r,--max-commits -n,--workers -wshort 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 mapand
the "Watching … (Ctrl-C to stop)" line fromdirplot watchpreviously went to
stdout in some cases; they now consistently go to stderr. $COLUMNS/$LINEShonoured for terminal size — whenioctland
os.get_terminal_size()are both unavailable (CI, SSH sessions, scripts), the
standard$COLUMNSand$LINESenvironment variables are now checked before
falling back to the hardcoded160×45default.dirplot mapwith no arguments shows help — runningdirplot mapwithout
paths or piped input in an interactive terminal now prints the command help instead
of an error.
Added
dirplot metricscommand — scans any source supported bydirplot 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|sizeondirplot metrics— controls extension ordering;
count(default) sorts by number of files,sizesorts by total bytes.--top Nondirplot metrics— caps the number of entries shown
in each list (extensions, largest files, largest dirs). Default: 10.--json/--no-jsonondirplot metrics— outputs all metrics as a
structured JSON object, suitable for piping intojqor scripts.--metrics/--no-metricsondirplot 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) → strin
dirplot.scanner— public API returning the human-readable metrics string.tree_metrics_dict(root_node, t_scan, top_n, sort_by) → dictin
dirplot.scanner— public API returning a structured dict with all metrics;
the source of truth for both the text and JSON outputs.
Changed
--log/--logscalemerged into a single--logscaleparameter — the
boolean--log/--no-logflag 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 pass0to disable. The default is0
(disabled). The ratio controls the max/min layout-size ratio of leaf files after
transformation.
Fixed
-
dirplot overviewcommand — Resolves app name/description/version from
importlib.metadataso the overview output shows richer context without requiring
manual wiring. -
macOS Keychain error during git clone —
git cloneis now invoked with
-c credential.helper=to suppress the system credential helper. This prevents
the-25308Keychain 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.