Skip to content

Commit ff8aed1

Browse files
committed
fix: make sqlite-vec optional and fix clippy lint in core
- Made 'sqlite-vec' an optional feature in 'localgpt-core', enabled by default. - Disabled 'sqlite-vec' in 'localgpt-mobile' to prevent cross-compilation issues. - Gated vector extension logic in 'index.rs' behind the feature flag. - Fixed 'clippy::collapsible_if' in 'bridge.rs' using 'Option::filter'.
1 parent 564996f commit ff8aed1

3 files changed

Lines changed: 16 additions & 10 deletions

File tree

crates/core/Cargo.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ description = "Core library for LocalGPT — agent, memory, config, security"
88
publish = false
99

1010
[features]
11-
default = ["embeddings-local", "claude-cli"]
11+
default = ["embeddings-local", "claude-cli", "sqlite-vec"]
1212
# Local embeddings via fastembed (ONNX). Desktop default.
1313
embeddings-local = ["fastembed"]
1414
# Claude CLI provider (requires subprocess execution — not available on mobile)
@@ -19,14 +19,16 @@ embeddings-gguf = ["llama-cpp-2"]
1919
embeddings-openai = []
2020
# Disable all embeddings — FTS5 keyword search only
2121
embeddings-none = []
22+
# Sqlite vector search extension (requires native build, disable for mobile)
23+
sqlite-vec = ["dep:sqlite-vec"]
2224
# Legacy alias
2325
gguf = ["embeddings-gguf"]
2426

2527
[dependencies]
2628
tokio = { workspace = true }
2729
reqwest = { workspace = true }
2830
rusqlite = { workspace = true }
29-
sqlite-vec = { workspace = true }
31+
sqlite-vec = { workspace = true, optional = true }
3032
serde = { workspace = true }
3133
serde_json = { workspace = true }
3234
serde_yaml = { workspace = true }

crates/core/src/memory/index.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ impl MemoryIndex {
134134
}
135135

136136
/// Try to load sqlite-vec extension
137+
#[cfg(feature = "sqlite-vec")]
137138
#[allow(unsafe_code)]
138139
fn try_load_sqlite_vec(conn: &Connection) -> bool {
139140
// sqlite-vec provides the extension as a loadable module
@@ -165,6 +166,11 @@ impl MemoryIndex {
165166
false
166167
}
167168

169+
#[cfg(not(feature = "sqlite-vec"))]
170+
fn try_load_sqlite_vec(_conn: &Connection) -> bool {
171+
false
172+
}
173+
168174
/// Create virtual table for vector search (requires sqlite-vec)
169175
fn ensure_vec_table(conn: &Connection) -> Result<()> {
170176
// Create chunks_vec virtual table if sqlite-vec is available

crates/core/src/security/bridge.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -187,14 +187,12 @@ impl BridgeManager {
187187
#[cfg(unix)]
188188
{
189189
let current_uid = unsafe { libc::getuid() };
190-
if let Some(peer_uid) = id.uid {
191-
if peer_uid != current_uid {
192-
error!(
193-
"Rejected connection from UID {} (expected {})",
194-
peer_uid, current_uid
195-
);
196-
continue;
197-
}
190+
if let Some(peer_uid) = id.uid.filter(|&uid| uid != current_uid) {
191+
error!(
192+
"Rejected connection from UID {} (expected {})",
193+
peer_uid, current_uid
194+
);
195+
continue;
198196
}
199197
}
200198
id

0 commit comments

Comments
 (0)