Repository navigation
Conversation
--list-invocations evaluated an OR of every invocation ID on each step, which made many-ID journals hundreds of times slower than stock. The prefilter now applies only to a few IDs. Tables size the IDX column to the widest index, as stock does. Records the SOW-0122 measurements and tracks the remaining gaps in SOW-0166, SOW-0167 and SOW-0168.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | -8 |
| Duplication | 0 |
AI Reviewer: first review requested successfully. AI can make mistakes. Always validate suggestions.
TIP This summary will be updated as you push new changes.
There was a problem hiding this comment.
Pull Request Overview
✅ No blocking issues noticed
No blocking findings were identified. The change lacks committed regression tests for the large-ID prefilter behavior, sparse-ID behavior, output preservation, and Rust/Go parity; these remain important validation gaps. The pending performance gaps are documented but not covered by automated tests.
A documentation formatting issue was also reported in the follow-mode tracking note.
About this PR
- The central bounded-prefilter behavior and cross-language parity are not covered by committed regression tests. Add automated coverage for these cases and for the documented remaining CLI gaps.
Test suggestions
- Verify both CLIs disable the eligibility prefilter above 32 IDs and preserve invocation results.
- Verify sparse journals with 32 or fewer IDs retain eligibility filtering and correct results.
- Verify IDX width for negative, multi-digit, and empty index sets in quiet and non-quiet modes.
- Verify boot and invocation output formatting matches stock for wide indexes in both languages.
- Verify cross-language output parity for the bounded-prefilter behavior.
- Add automated regression coverage for the documented directory-seek, Go eager-loading, and follow-mode gaps.
Prompt proposal for missing tests
Consider implementing these tests if applicable:
1. Verify both CLIs disable the eligibility prefilter above 32 IDs and preserve invocation results.
2. Verify sparse journals with 32 or fewer IDs retain eligibility filtering and correct results.
3. Verify boot and invocation output formatting matches stock for wide indexes in both languages.
4. Verify cross-language output parity for the bounded-prefilter behavior.
5. Add automated regression coverage for the documented directory-seek, Go eager-loading, and follow-mode gaps.
TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback
There was a problem hiding this comment.
All reported issues were addressed across 13 files
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
# Conflicts: # SOW-status.md
…tighten SOW-0166 gate and SOW-0168 policy note
# Conflicts: # .agents/sow/SOW-status.md
# Conflicts: # .agents/sow/SOW-status.md
# Conflicts: # .agents/sow/SOW-status.md
# Conflicts: # .agents/sow/SOW-status.md
# Conflicts: # .agents/sow/SOW-status.md
There was a problem hiding this comment.
All reported issues were addressed across 1 file (changes from recent commits).
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
Stacked on #20. Completes SOW-0122 (
.agents/sow/done/SOW-0122-20260621-journalctl-performance-followups.md) and opens SOW-0166, SOW-0167 and SOW-0168 for the remaining measured gaps.Decisions for review (agent-chosen, pending your review)
--list-invocationsprefilter limited to 32 IDs.ELIGIBILITY_MAX_TERMS/invocationEligibilityMaxTerms). Above that, the walk matches stock's unit/boot walk.IDX/-99and we printedIDX/-99.Measurements
Fixtures: 1.5M entries, as one 931 MB file and as 300 files. Full table:
.local/sow0122/report.md(local, not committed), summarized in the SOW.--list-invocations -uOutput is byte-identical to stock for
--list-invocations(with and without-q) and--list-boots, in both languages.Rust is otherwise at or faster than stock: full output is 2-4x faster. The new pending SOWs:
--sinceseek--followpolls and reopens instead of waitingValidation
go test ./cmd/journalctlandcargo test -p journalctl: pass.Summary by cubic
Completes SOW-0122 by fixing
--list-invocationsperformance and IDX column alignment in both CLIs, and opens SOW-0166, SOW-0167, and SOW-0168 for the remaining measured gaps. Output is now byte-identical to stock for--list-invocationsand--list-boots; Rust is otherwise at or faster than stock. Carries thesow-0160/xz-dictionarybase via merges, with its SOWs recorded in the ledger.Two agent-chosen decisions, both approved by the user on 2026-11-03:
--list-invocations -ufrom 240-590x slower than stock to near parity (Rust 0.23 s file / 0.67 s dir vs stock 0.06 s / 1.03 s).Residual gaps tracked as new SOWs
--sinceseek at 17x slower than stock; the SOW records the reproduction procedure.--followpolls and reopens instead of waiting; decided 2026-11-03 to make portable polling cheap (reuse readers, check header counters per poll, back off while idle) — inotify needs a separate policy decision.Validation: 3587/3587 query matrix PASS against the v262 oracle, 134/134 parser parity in each language, paired IDX-width tests added, and both
go test ./cmd/journalctlandcargo test -p journalctlpass.Written for commit cffcb3d. Summary will update on new commits.