Changelog
All notable changes to EdgeCrab are documented here. Format follows Keep a Changelog.
[Unreleased] — Phase 5: Integration & Polish
Section titled “[Unreleased] — Phase 5: Integration & Polish”SDKs & CI/CD
Section titled “SDKs & CI/CD”- Python SDK (
sdks/python/) —edgecrab-sdkon PyPI. Sync/async clients, Agent/AsyncAgent with conversation history, streaming, CLI (edgecrab chat/models/health). 54 tests. - Node.js SDK (
sdks/node/) —edgecrab-sdkon npm. TypeScript-first with Agent, streaming (async generator), CLI. CJS + ESM dual build. 24 tests. - CI workflow — Rust build/test/clippy/fmt on ubuntu/macos/windows matrix, Python & Node.js SDK tests, cargo-audit security scan.
- Release workflows —
release-rust.yml(10 crates to crates.io),release-python.yml(wheels + sdist to PyPI),release-node.yml(npm publish),release-docker.yml(multi-arch GHCR image). - Site — Astro + Starlight documentation site published at edgecrab.com.
edgecrab-core
Section titled “edgecrab-core”Agent::chat_streaming()— async method delivering tokens viaUnboundedSender<StreamEvent>.StreamEventenum —Token(String),Done,Error(String).- LLM compression —
compress_with_llm()summarizes old messages to stay within context windows.
edgecrab-tools
Section titled “edgecrab-tools”RunProcessTool— real background process spawning viatokio::process::Command.WebSearchTool— DuckDuckGo Instant Answer API. No API key required.WebExtractTool— fetches URLs viareqwest, strips HTML, SSRF-protected.
edgecrab-cli
Section titled “edgecrab-cli”- YAML skin engine —
SkinConfigreads~/.edgecrab/skin.yamlat startup. - Model hot-swap —
/model provider/modelcreates a new provider and callsagent.swap_model(). - Session management —
/session newand/new. - Streaming display — tokens arrive via
AgentResponse::Token(text)in the TUI event loop.
- Tests: 324 passing (unit + integration + e2e)
- Clippy: 0 warnings with
-D warnings - Binary size: ~15 MB
- Cold startup: < 50 ms