agent: lumotia-rebrand — rust workspace crates magnotia-* -> lumotia-*
Phase 2 of the rebrand cascade. Renames all 9 workspace crates from magnotia-* to lumotia-* plus the src-tauri binary crate name: - magnotia-ai-formatting -> lumotia-ai-formatting - magnotia-audio -> lumotia-audio - magnotia-cloud-providers -> lumotia-cloud-providers - magnotia-core -> lumotia-core - magnotia-hotkey -> lumotia-hotkey - magnotia-llm -> lumotia-llm - magnotia-mcp -> lumotia-mcp - magnotia-storage -> lumotia-storage - magnotia-transcription -> lumotia-transcription - magnotia -> lumotia (src-tauri binary) - magnotia_lib -> lumotia_lib (src-tauri lib target) Crate directories (crates/audio/ etc.) stay as-is; only the Cargo.toml [package] name field changes plus all consumer module imports (magnotia_core -> lumotia_core, etc.). Remaining magnotia_* references at this point are intentional and scoped to later phases: tracing targets (Phase 4), DB setting keys magnotia_preferences/magnotia_history (Phase 5). cargo build --workspace passes. cargo test --workspace: 330 pass, 0 fail. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
[package]
|
||||
name = "magnotia-mcp"
|
||||
name = "lumotia-mcp"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
description = "Read-only MCP stdio server exposing Magnotia transcripts and tasks to external agents"
|
||||
|
||||
[[bin]]
|
||||
name = "magnotia-mcp"
|
||||
name = "lumotia-mcp"
|
||||
path = "src/main.rs"
|
||||
|
||||
[lib]
|
||||
path = "src/lib.rs"
|
||||
|
||||
[dependencies]
|
||||
magnotia-storage = { path = "../storage" }
|
||||
lumotia-storage = { path = "../storage" }
|
||||
sqlx = { version = "0.8", default-features = false, features = ["runtime-tokio", "sqlite"] }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
|
||||
@@ -206,7 +206,7 @@ async fn list_transcripts_tool(pool: &SqlitePool, args: Value) -> Result<Value,
|
||||
};
|
||||
let limit = args.limit.unwrap_or(20).clamp(1, 200);
|
||||
|
||||
let rows = magnotia_storage::list_transcripts(pool, limit)
|
||||
let rows = lumotia_storage::list_transcripts(pool, limit)
|
||||
.await
|
||||
.map_err(|e| error(-32603, format!("DB error: {e}")))?;
|
||||
|
||||
@@ -239,7 +239,7 @@ async fn get_transcript_tool(pool: &SqlitePool, args: Value) -> Result<Value, Js
|
||||
let args: Args = serde_json::from_value(args)
|
||||
.map_err(|e| error(-32602, format!("Invalid arguments: {e}")))?;
|
||||
|
||||
let row = magnotia_storage::get_transcript(pool, &args.id)
|
||||
let row = lumotia_storage::get_transcript(pool, &args.id)
|
||||
.await
|
||||
.map_err(|e| error(-32603, format!("DB error: {e}")))?
|
||||
.ok_or_else(|| error(-32000, format!("Transcript {} not found", args.id)))?;
|
||||
@@ -273,7 +273,7 @@ async fn search_transcripts_tool(pool: &SqlitePool, args: Value) -> Result<Value
|
||||
.map_err(|e| error(-32602, format!("Invalid arguments: {e}")))?;
|
||||
let limit = args.limit.unwrap_or(20).clamp(1, 100);
|
||||
|
||||
let rows = magnotia_storage::search_transcripts(pool, &args.query, limit)
|
||||
let rows = lumotia_storage::search_transcripts(pool, &args.query, limit)
|
||||
.await
|
||||
.map_err(|e| error(-32603, format!("DB error: {e}")))?;
|
||||
|
||||
@@ -296,7 +296,7 @@ async fn search_transcripts_tool(pool: &SqlitePool, args: Value) -> Result<Value
|
||||
}
|
||||
|
||||
async fn list_tasks_tool(pool: &SqlitePool) -> Result<Value, JsonRpcError> {
|
||||
let rows = magnotia_storage::list_tasks(pool)
|
||||
let rows = lumotia_storage::list_tasks(pool)
|
||||
.await
|
||||
.map_err(|e| error(-32603, format!("DB error: {e}")))?;
|
||||
|
||||
@@ -460,7 +460,7 @@ mod tests {
|
||||
});
|
||||
|
||||
let pool = sqlx::SqlitePool::connect("sqlite::memory:").await.unwrap();
|
||||
magnotia_storage::migrations::run_migrations(&pool)
|
||||
lumotia_storage::migrations::run_migrations(&pool)
|
||||
.await
|
||||
.unwrap();
|
||||
let response = handle_message(&pool, request).await.expect("has response");
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
//! Stdio entry point for magnotia-mcp. Reads newline-delimited JSON-RPC messages
|
||||
//! from stdin, dispatches via `magnotia_mcp::handle_message`, writes responses to
|
||||
//! from stdin, dispatches via `lumotia_mcp::handle_message`, writes responses to
|
||||
//! stdout. Logs land on stderr so they don't collide with the JSON-RPC stream.
|
||||
|
||||
use tokio::io::{AsyncBufReadExt, AsyncWriteExt, BufReader};
|
||||
|
||||
#[tokio::main(flavor = "current_thread")]
|
||||
async fn main() -> anyhow::Result<()> {
|
||||
let db_path = magnotia_storage::database_path();
|
||||
let db_path = lumotia_storage::database_path();
|
||||
eprintln!(
|
||||
"[magnotia-mcp] opening Magnotia database at {} (read-only)",
|
||||
db_path.display()
|
||||
@@ -15,7 +15,7 @@ async fn main() -> anyhow::Result<()> {
|
||||
// to the user's database, regardless of which tools the dispatcher
|
||||
// exposes. Migrations are deliberately skipped — this binary never owns
|
||||
// the schema; the main app is the single migration writer.
|
||||
let pool = magnotia_storage::init_readonly(&db_path).await?;
|
||||
let pool = lumotia_storage::init_readonly(&db_path).await?;
|
||||
eprintln!("[magnotia-mcp] ready, waiting for JSON-RPC on stdin");
|
||||
|
||||
let mut lines = BufReader::new(tokio::io::stdin()).lines();
|
||||
@@ -28,7 +28,7 @@ async fn main() -> anyhow::Result<()> {
|
||||
}
|
||||
|
||||
let response = match serde_json::from_str::<serde_json::Value>(trimmed) {
|
||||
Ok(raw) => match magnotia_mcp::handle_message(&pool, raw).await {
|
||||
Ok(raw) => match lumotia_mcp::handle_message(&pool, raw).await {
|
||||
Some(response) => response,
|
||||
None => continue, // notification — no reply
|
||||
},
|
||||
@@ -39,7 +39,7 @@ async fn main() -> anyhow::Result<()> {
|
||||
// clients saw silence instead of a structured error
|
||||
// (2026-04-22 review MAJOR).
|
||||
eprintln!("[magnotia-mcp] parse error: {err}");
|
||||
magnotia_mcp::parse_error_response(&err.to_string())
|
||||
lumotia_mcp::parse_error_response(&err.to_string())
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user