fix: correct critical bugs and improve pipe streaming performance
Critical bug fixes:
- save_item now returns real Item from database, not a hardcoded fake
- AsyncDataService::save() reuses self.sync_service instead of creating redundant instance
- GenerateStatus trait signature mismatch fixed (CLI/API decoupling)
Performance improvements (pipe path untouched):
- CompressionEngine::open() returns Box<dyn Read + Send> enabling true streaming
- mode_get eliminates triple full-file read (was sampling then re-reading entire file)
- FilteringReader adds fast-path bypass when no filters, pre-allocates temp buffer
- text.rs meta plugin processes &[u8] slice directly, eliminates data.to_vec() clone
API correctness:
- Tag parse errors now return 400 instead of being silently discarded
- compute_diff uses similar crate (LCS-based) instead of naive positional comparison
Cleanup:
- Modernize string formatting (format!({x})) across codebase
- Remove redundant DB query in get mode
- Derive Debug/ToSchema on public types
- Delete placeholder test files with no real assertions
- Extract parse_comma_tags utility function
This commit is contained in:
@@ -192,15 +192,15 @@ fn looks_like_tar(data: &[u8]) -> bool {
|
||||
}
|
||||
|
||||
// Check file mode field (should be octal digits)
|
||||
for i in 100..108 {
|
||||
if data[i] != 0 && (data[i] < b'0' || data[i] > b'7') && data[i] != b' ' {
|
||||
for byte in data.iter().skip(100).take(8) {
|
||||
if *byte != 0 && !(b'0'..=b'7').contains(byte) && *byte != b' ' {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Check checksum field (should be octal digits or spaces)
|
||||
for &b in &data[148..156] {
|
||||
if b != 0 && (b < b'0' || b > b'7') && b != b' ' {
|
||||
if b != 0 && !(b'0'..=b'7').contains(&b) && b != b' ' {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user