Repository navigation
Recover journal prefixes and align Rust/Go journalctl with v262 - #12
Conversation
Own contributing facet and histogram keys across rolling reader access. Reuse bounded ENTRY-header storage and avoid redundant native-reader open and constructor work, with allocation and cross-platform coverage. Close the reopened SOW-0108 repair with validation and review dispositions. Preserve paused SDK and journalctl scopes and track independent findings.
Recover intact journal prefixes with observable status, bound native chains, consume complete compressed streams, and align indexed filter positioning and retries. Preserve strict capture and writer behavior, propagate required index failures, and migrate cached indexes. Record supported-toolchain validation, shared stock-v262 checks, focused performance evidence, review dispositions and SDK SOW completion together.
|
Important Review skippedToo many files! This PR contains 215 files, which is 115 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.
|
Up to standards ✅🟢 Issues
|
f5063ba to
0fc3d82
Compare
837873a to
1f84cca
Compare
b12c8ff to
e3ed6ec
Compare
eff0231 to
bed8c11
Compare
bed8c11 to
45e0de2
Compare
fcd918b to
2c12221
Compare
There was a problem hiding this comment.
Review completed against the latest diff
You’re at about 95% of the monthly reviewed-line limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.
Note: This PR contains a large number of files. cubic selects up to 200 of the highest-priority eligible files for this review, so some files may not have been reviewed.
View guided diff | Turn on auto-fix | Re-trigger cubic
There was a problem hiding this comment.
Pull Request Overview
This pull request is too large for an AI review. Its diff is over the size the reviewer can fetch from the Git provider. Splitting it into smaller pull requests lets the reviewer cover it.
TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback
Rust and Go readers now recover an incomplete journal's intact entries by default, finish with normal EOF and expose recovery status. The SDK changes align native indexed filtering and position/error behavior, complete Rust's concatenated Zstandard decoding and repair Go indexed aggregation's borrowed-value lifetime.
Both file-backed journalctl commands now target systemd v262. In particular,
-F/-Nreject incompatible time, cursor and entry filters, grep uses native PCRE2 byte semantics, and unmatched unit wildcards return the native no-data error. Unit naming, wildcard matching and invocation discovery now follow native selection rules. FreeBSD uses a shared CLI compatibility path for extended brackets absent from its native matcher, with ordinary patterns retaining native matching. Invocation queries reuse indexed readers and metadata; follow retains its initial unit expansion and invocation selection. The update also aligns ordered option handling, timestamps, cursor/follow selection, output modes, terminal colors and maintenance behavior.Unix filenames retain their original bytes through file selection and the additive Rust facade path APIs. Unix patterns use locale-aware native globbing; Windows uses Unicode filenames and matching. Existing string APIs and ordinary cache identity remain compatible. SDKs remain independent of PCRE2/CGO and keep their existing compiler minimums and journal-format baseline.
Validation:
Performance evidence uses existing representative command controls and review of the changed work. A 64-invocation listing improved from 56.65 to 10.50 ms in Go and from 74.69 to 19.47 ms in Rust in matched local build profiles; sparse-ID controls also improved. An initial small Go no-ID increase did not reproduce in focused comparisons. The accepted exceptions are limited to fixed CLI startup and age-based vacuum metadata (about 7 ms Go / 3.8 ms Rust extra per 1,000 recent archive names in the retained warm control). SDK and ordinary query performance requirements remain unchanged.
Daemon/host catalog operations retain the documented portable limitations. Broader large-input performance envelopes and polling scalability remain tracked separately.
Coverage now includes the existing portable CLI subprocess controls in both language reports. Full local coverage jobs pass; Go retains every unit-profile block while adding CLI hits, and Rust collects workspace and subprocess profiles together. Runtime source and release performance are unchanged by this reporting update.
SOW-0108, SOW-0159 and SOW-0121 are completed, including the approved archive ordering repair in signed commit
2c12221. Final implementation and closure review passed for that exact commit. The repair passes native Linux, macOS, Windows and FreeBSD CI, both coverage-generation jobs, documentation checks and Go/Rust CodeQL. The final amendment changes lifecycle records only; normal CI reruns against it. This remains a draft for maintainer review; no merge or release is included.Analysis limitations: on the repair run, Codacy configuration fetching failed with Internal Server Error twice; coverage generation passed but its Codacy upload reported Request URL not found / no data sent. These external API/configuration failures are not code findings and remain unresolved. The earlier Bandit execution error also prevents claiming full Bandit coverage.
Archive ordering repair: clock rollback across writer histories can make stock sequence/time comparisons contradictory. Both CLIs now preserve sequence order within each history and choose the oldest timestamp among available history heads, with deterministic ties. This approved exception avoids Rust sorting panics and makes retention selection agree across languages and enumeration orders. Existing count/size/age stop conditions and protected-file handling are preserved. Validation adds 24 portable observations (130 total), 120 insertion permutations per language and independent 10,000-case models per language; 78 existing utility/oracle observations pass.