Conversation
Signed-off-by: Sam Day <me@samcday.com>
Signed-off-by: Sam Day <me@samcday.com>
|
@claude review |
|
Claude finished @samcday's task in 3m 7s —— View job Code Review
Overall this is clean, well-structured work. Good test coverage on the tar crate, the hint path integrates consistently across both std and web materializers, and the PAX/GNU extension handling is solid. One issue stands out as a likely bug. Binary format compatibility break (v3 → v4)
The decode path treats v3 and v4 payloads identically: // crates/gibblox-pipeline/src/lib.rs:89
3 | 4 => postcard::from_bytes::<PipelineSourceBin>(payload)?,A v3-encoded
Fix options:
Minor issues
The current loop processes all bytes in the field, treating
if !is_regular_entry_type(header_meta.entry_type) || header_meta.entry_type != index.entry_typeThe first condition is redundant: by the time we reach this line,
fn pipeline_hints_cache_key(options: &OpenWebPipelineOptions) -> String {
let encoded = match encode_pipeline_hints(hints) { ... };
let mut hasher = BlockIdentityHasher32::new();
hasher.write(encoded.as_slice());
...
}This runs a full CLI execute mode can't consume hints The |
The previous 3s connect / 6s total defaults were inherited from the smoo port and are too aggressive for callers like one-shot probes over slow links, where there's no benefit to fast-fail + retry. Signed-off-by: Sam Day <me@samcday.com>
Adds optional connect_timeout / request_timeout fields (with with_connect_timeout / with_request_timeout builders) so callers can override the library defaults per-reader. Defaults are unchanged and exported as DEFAULT_CONNECT_TIMEOUT / DEFAULT_REQUEST_TIMEOUT. Wasm targets ignore the values (fetch has no equivalent reqwest hook). Signed-off-by: Sam Day <me@samcday.com>
Signed-off-by: Sam Day <me@samcday.com>
Signed-off-by: Sam Day <me@samcday.com>
Signed-off-by: Sam Day <me@samcday.com>
|
@claude another review please. I opted to break schema compatibility again in v0.0.2, in order to reset everything back to a sane+pristine |
|
Claude finished @samcday's task in 3m 33s —— View job Code Review
The intentional v0 break is the right call given the pre-release context, and the implementation is clean. Both of the action items from the first review are fixed. The remaining issues are minor. Binary format compatibility — resolved cleanly
CLI hints consumption — resolved
Minor issues (carried from previous review, still present)
if !is_regular_entry_type(header_meta.entry_type) || header_meta.entry_type != index.entry_type
When New observation
let header_meta = parse_header(&header, &PendingMetadata::default())?;
For entries whose PAX header specifically overrides if header_meta.size_bytes != index.size_bytes { // uses raw header size vs PAX-extended sizeIn practice this is only reachable if:
OS images inside tarballs at that scale are unusual but not impossible (consider a 16 GiB rootfs.img). Worth a note in case Mobian artifacts ever hit this. Everything elseThe optimizer is clean. |
Signed-off-by: Sam Day <me@samcday.com>
.tarsupport so we can hopefully support Mobian artifacts soon.Pipeline optimization stuff because it should be here and not fastboop.
Related to samcday/fastboop#101