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:
@@ -54,11 +54,11 @@ impl MagicFileMetaPluginImpl {
|
||||
if let Some(cookie) = &self.cookie {
|
||||
cookie
|
||||
.set_flags(flags)
|
||||
.map_err(|e| io::Error::other(format!("Failed to set magic flags: {}", e)))?;
|
||||
.map_err(|e| io::Error::other(format!("Failed to set magic flags: {e}")))?;
|
||||
|
||||
let result = cookie
|
||||
.buffer(&self.buffer)
|
||||
.map_err(|e| io::Error::other(format!("Failed to analyze buffer: {}", e)))?;
|
||||
.map_err(|e| io::Error::other(format!("Failed to analyze buffer: {e}")))?;
|
||||
|
||||
// Clean up the result - remove extra whitespace
|
||||
let trimmed = result.trim().to_string();
|
||||
@@ -109,7 +109,7 @@ impl MetaPlugin for MagicFileMetaPluginImpl {
|
||||
let cookie = match Cookie::open(CookieFlags::default()) {
|
||||
Ok(cookie) => cookie,
|
||||
Err(e) => {
|
||||
debug!("META: MagicFile plugin: failed to create cookie: {}", e);
|
||||
debug!("META: MagicFile plugin: failed to create cookie: {e}");
|
||||
return MetaPluginResponse {
|
||||
metadata: Vec::new(),
|
||||
is_finalized: true,
|
||||
@@ -118,10 +118,7 @@ impl MetaPlugin for MagicFileMetaPluginImpl {
|
||||
};
|
||||
|
||||
if let Err(e) = cookie.load(&[] as &[&Path]) {
|
||||
debug!(
|
||||
"META: MagicFile plugin: failed to load magic database: {}",
|
||||
e
|
||||
);
|
||||
debug!("META: MagicFile plugin: failed to load magic database: {e}");
|
||||
return MetaPluginResponse {
|
||||
metadata: Vec::new(),
|
||||
is_finalized: true,
|
||||
|
||||
Reference in New Issue
Block a user