feat: add undo/redo (Cmd+Z/Cmd+Shift+Z) and SVG file drag-and-drop
- Undo walks to parent node in history tree, redo follows last-active-child for correct branch tracking after forks - HistoryTree tracks branch recency via last_active_child field, updated on push() and checkout() path transitions - SVG files can be dragged from Finder onto the canvas window - Edit menu with Undo/Redo items, command palette entries - 3 new tests: undo, redo, redo-after-fork branch behavior - 29 tests passing, clippy clean
This commit is contained in:
@@ -8,7 +8,10 @@ use tools::AgCanvasServer;
|
||||
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(name = "agcanvas-mcp", about = "MCP server bridge for Augmented Canvas")]
|
||||
#[command(
|
||||
name = "agcanvas-mcp",
|
||||
about = "MCP server bridge for Augmented Canvas"
|
||||
)]
|
||||
struct Cli {
|
||||
#[arg(long, default_value = "9876")]
|
||||
port: u16,
|
||||
@@ -26,7 +29,10 @@ async fn main() -> Result<()> {
|
||||
let cli = Cli::parse();
|
||||
let ws_url = format!("ws://127.0.0.1:{}", cli.port);
|
||||
|
||||
tracing::info!("Starting Augmented Canvas MCP server, connecting to {}", ws_url);
|
||||
tracing::info!(
|
||||
"Starting Augmented Canvas MCP server, connecting to {}",
|
||||
ws_url
|
||||
);
|
||||
|
||||
let server = AgCanvasServer::new(ws_url);
|
||||
let service = server.serve(rmcp::transport::stdio()).await?;
|
||||
|
||||
Reference in New Issue
Block a user