Release v0.4.0
Release v0.4.0
Changelog
[0.4.0] - 2025-01-10
Added
- Stable machine-readable outputs with streaming:
--json: Outputs a single JSON array (streamed). Supports--prettyfor human-friendly indentation.--ndjson: Newline-delimited JSON, one object per line.--csv: CSV with a header row. Proper escaping and UTF-8 handling via thecsvcrate.- Flags are mutually exclusive;
--prettyonly affects--json.
- Stable schema across machine modes with these fields (always present; nulls where appropriate):
path,name,extension,file_type,size_bytes,modified,created,accessed,mode_octal,owner_user,owner_group,inode,hard_links,symlink_target,is_hidden,git_status, andplugincontainer for plugin enrichments.
- Streaming output writers to avoid unbounded memory growth on large listings.
- Optional Git status integration into machine outputs when
-Gis used (no extra git work otherwise). - Archive introspection (no extraction to disk):
- Automatic detection for
.zip,.tar,.tar.gz,.tgzwhen a single archive file is passed as the path - Lists archive contents as a virtual directory and integrates with existing views: default, long, table, grid, tree, recursive
- Works with filters, sorting, depth control, and machine outputs (
--json,--ndjson,--csv) - Symlink targets in tar archives are exposed as
custom_fields["symlink_target"]
- Automatic detection for
- Single-file listing:
- Passing a regular file path now lists that single file (instead of erroring with Not a directory)
- All formatters and machine outputs apply normally
- Long format quality-of-life flags:
--hide-group: Hide the group column (great for single-user systems). Also configurable viaformatters.long.hide_groupin the config file.--relative-dates: Show relative modified times (e.g., "2h ago"). Also configurable viaformatters.long.relative_dates.- Relative dates are powered by
chrono-humanizefor accurate human-friendly phrasing.
Changed
- CLI: Added mutually exclusive flags group for machine output (
--json,--ndjson,--csv) and--pretty. - Internal: Introduced
OutputModein CLI args to route to human vs machine formatters. - Internal: Added a serializable adapter to normalize timestamps to ISO-8601 UTC and permissions to octal.
- Docs: Updated README with a new "Machine Output" section including schema and examples.
- Long format date column alignment is now consistent even when using relative dates.
- Grid formatter no longer appends an extra trailing blank newline; output ends without an extra empty line.
Fixed
- Non-fatal metadata read failures are handled gracefully during machine output; entries still emit with nulls where needed and a warning on stderr, without corrupting stdout.
- Graceful handling when the provided path is a single file or an archive: no erroneous directory reads
- Relative date phrasing now correctly uses "X ago" for past times and "in X" for future times.
SHA256 Checksums
78edf8a071bef5558024eccbfbf3af0b6540877aa7d384fa8d62fd21a5c1b5b8 lla-linux-amd64/lla-linux-amd64
1070dfd14e45993f929ca5eaac380f0a9474eb3993d241d338949f59256df9ea lla-linux-arm64/lla-linux-arm64
4d8bdfe4dca8e845b0f8281d426ae8bffb8ae902d8b7aed1778084a61471f04e lla-linux-i686/lla-linux-i686
20b71bee4880d666b53608de715ea2bcb8bf79ccbe71e2cd267552a8d15122d5 lla-macos-amd64/lla-macos-amd64
6c27224ad49a3b6db5b2d8e04017272381c2c43ad2d44c700a9da4edc1170896 lla-macos-arm64/lla-macos-arm64
4d6d0ff11314da4a12f264c83e151e1e458c632b4eed20aefbe6325dfba7d718 themes.zip