feat(cli): Batch improvements — fixes, UX enhancements, CI, and docs#13
Merged
dimitris-norce merged 3 commits intomainfrom May 4, 2026
Merged
feat(cli): Batch improvements — fixes, UX enhancements, CI, and docs#13dimitris-norce merged 3 commits intomainfrom
dimitris-norce merged 3 commits intomainfrom
Conversation
Fixes: - Remove dead redirect check in updater.rs (reqwest follows redirects) - Reject reversed --from/--to absolute timeranges with clear error - Surface aggregate fallback retry warning to stderr - Wire fields --refresh flag through to cache bypass in service layer - Integration test runner now uses pre-built binary via CARGO_BIN_EXE Features: - --all-pages: emit stderr warning + metadata.truncated on 10k cap - fields --refresh: bypass on-disk cache and re-fetch from Graylog - --format table: render search/aggregate/count-by-level as ASCII table - --since <duration>: absolute time range shorthand ending now CI: - Add Linux aarch64 build job to ci.yml (QEMU emulation) - Add Linux aarch64 build job to release.yml - Generate checksums.txt and attach to GitHub releases Docs: - Document --since, --format, --all-pages truncation caveat, --group-by behavior, and fields --refresh in SKILL.md
ankarhem
reviewed
May 4, 2026
- Fix checksums.txt self-reference: exclude checksums.txt from find so the empty file created by shell redirect is not included - Switch aggregate retry warning from eprintln! to tracing::debug; add tracing + tracing-subscriber deps with EnvFilter (RUST_LOG) - Replace hand-rolled ASCII table renderer with tabled crate
- Add linux/aarch64 arm to current_asset_name() so self-update works on the new aarch64 release target (was falling through to UnsupportedPlatform error) - Tighten --since sub-second guard: check duration.as_secs() == 0 instead of duration == Duration::ZERO; sub-second values like 500ms parsed fine but produced from_secs == to_secs, causing a cryptic 'timestamps must not be identical' error downstream
ankarhem
approved these changes
May 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A batch of improvements across the codebase:
Fixes
updater.rs—reqwestfollows redirects automatically so the 301/302 guard after.send()could never fire--from/--toabsolute timeranges with a clear validation error (previously only equal timestamps were caught)fieldscommand now respects and populates the on-disk cache (it previously bypassed it entirely)CARGO_BIN_EXE_graylog-clito invoke the pre-built binary instead of re-runningcargo run --per testFeatures
--all-pages: emit a stderr warning and setmetadata.truncated = truein JSON output when the 10,000-message cap is hitfields --refresh: bypass the on-disk cache and force a fresh fetch from Graylog, then update the cache--format tableonsearch,aggregate, andcount-by-level: render results as a human-readable ASCII table instead of JSON--since <duration>: shorthand for an absolute time range ending now —--since 1hexpands to--from <now-1h> --to <now>. Accepts any humantime duration. Mutually exclusive with--time-rangeand--from/--toCI
ci.ymlusing QEMU emulationrelease.ymlchecksums.txt(SHA-256) in the release job and attach it to GitHub releasesDocs
SKILL.md: document--since,--format,fields --refresh,--all-pagestruncation caveat, and--group-byfield-injection behaviorTest plan
cargo test --all— 235 tests pass (231 unit + 4 integration)cargo clippy --all-targets -- -D warnings— cleancargo fmt --check— clean