Add terminal client, memory, model fallback, version and install improvements

- codecraft: full-screen terminal client (ratatui) – local tools and files,
  models via the CodeCraft server gateway or own providers (standalone with a
  guided setup), slash commands, @files, permission dialogs, resume, update
- Static Linux CLI builds (x86_64/aarch64, cargo-zigbuild) served by the
  server: /cli/install.sh and /cli/download/<target>
- Project memory (remember tool, .codecraft/memory.md) and personal memory
- Model fallback when a host is unreachable or a budget is used up
- Version/commit in UI and health, daily release check, "What's new" dialog
- PWA: install button, maskable icon, manifest id and screenshots
- Case-insensitive detection of connection errors for retries

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-09 00:13:06 +01:00
1 parent aa1f8cf016
commit 6dffcb501a
52 files changed
+6477 -765

No files matched your search

+17 -5
View File
@@ -2,7 +2,7 @@
name = "codecraft-cli"
version = "0.1.0"
edition = "2024"
description = "Command line client for CodeCraft"
description = "CodeCraft in the terminal: a local coding agent using your CodeCraft server or your own model providers"
license = "MIT"
[[bin]]
@@ -10,11 +10,23 @@ name = "codecraft"
path = "src/main.rs"
[dependencies]
codecraft-core = { path = "../core" }
anyhow = "1"
base64 = "0.22"
chrono = "0.4"
clap = { version = "4", features = ["derive", "env"] }
futures-util = "0.3"
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] }
crossterm = { version = "0.29", features = ["event-stream"] }
eventsource-stream = "0.2"
futures = "0.3"
globset = "0.4"
ignore = "0.4"
ratatui = "0.30"
regex = "1"
reqwest = { version = "0.13", default-features = false, features = ["json", "stream", "rustls"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = ["macros", "rt-multi-thread", "io-std", "io-util", "fs", "time", "signal"] }
tokio-tungstenite = { version = "0.28", default-features = false, features = ["connect", "rustls-tls-webpki-roots"] }
similar = "2"
tokio = { version = "1", features = ["macros", "rt-multi-thread", "io-std", "io-util", "fs", "time", "process", "sync", "signal"] }
tokio-util = "0.7"
toml = "1"
unicode-width = "0.2"