Changelog

Release history, written by hand. Versions follow semver — major bumps mean a breaking change.

1.4.2 2026-04-12 fixed

A small follow-up to 1.4.1, mostly fixing things that 1.4.1 broke.

  • fixed Percentile calculation on small samples (<5 records) returned NaN instead of the actual value.
  • fixed --parallel hanging on input streams smaller than the chunk size. Affected anyone piping short outputs.
  • fixed Terminal width detection on macOS Sonoma when running inside Warp.
1.4.1 2026-04-03 fixedchanged
  • fixed Crash when a JSON line contained a number larger than int64. We now fall back to string representation and emit a warning to stderr.
  • fixed before / after filters now accept timestamps without timezone, assuming the system zone.
  • changed The summary table now right-aligns numeric columns, which is what you wanted all along.
1.4.0 2026-03-21 addedchanged

Adds support for compiled inputs and parallel parsing. This is the largest release since 1.0.

  • added New compile subcommand that converts an input stream into a packed binary format. Repeated queries against the same dataset are 8–12× faster.
  • added --parallel N flag for filter and summary. Order is not preserved when used.
  • added gap analysis for timestamp aggregations: shows the largest gap in the stream and where it occurred.
  • changed Default percentiles are now p50/p90/p99. The old defaults (p50/p95/p99) are still available via --percentiles 50,95,99.
  • changed Minimum Go version bumped to 1.22 (was 1.21).
1.3.0 2026-01-28 added
  • added matches operator for regex filtering. Patterns are compiled once per query, not per record.
  • added Configuration file support (~/.config/codissy/config.toml). Aliases turn out to be the killer feature.
  • added Shell completion scripts for bash, zsh, fish (codissy completion <shell>).
1.2.1 2025-11-14 fixed
  • fixed Memory usage when streaming very large files. Previously the deduplication buffer was unbounded.
  • fixed ANSI escape codes in log content are now stripped before parsing rather than leaking into table cells.
1.2.0 2025-10-22 addedchanged
  • added Support for the Common Log Format (Apache & Nginx access logs).
  • added Time-bucketed summaries: summary --bucket 1m, --bucket 1h, etc.
  • added --limit N on pick for stopping after N matches without consuming the rest of the stream.
  • changed --no-color now also disables hyperlinks. Most terminals ignored them but a few rendered escape codes literally.
1.1.0 2025-08-09 added
  • added pick subcommand for projecting fields without aggregation.
  • added JSON output mode (auto-enabled when stdout is not a TTY).
  • added Logfmt input format. Detected automatically.
1.0.0 2025-06-04 added

First stable release. Public API is now considered frozen until 2.0.

  • Filter expressions with comparison, boolean, and string operators.
  • Summary statistics with default percentiles.
  • JSON input format with auto-detection.
  • Coloured tables in TTY mode.
0.3.0 2025-03-17 changed

Last 0.x release. Started using it in production at $work for tailing the staging environment. Mostly held together.

0.1.0 2024-11-02 added

Initial proof of concept. Read JSON from stdin, filter on a single field. The kind of thing you write on a Saturday and then can't stop tweaking.