- Session with consume-self close() (compile-time use-after-close)
- AtomicBool flag + Drop best-effort async close via tokio::spawn (logged on failure)
- Client::new_session / list_sessions / get_session
- TurnResult.text() helper, hand-written Debug to avoid bearer leak
- tests/sessions.rs: 12 tests covering new/close/idempotent/drop/list/state/404/text/debug-redaction
- README "Multi-turn / Sessions (v0.2)" section
v0.1 run path unchanged.
Spec: memory/spec-clawdforge-v0.2.md
Server core: 940861f
30 lines
1,010 B
TOML
30 lines
1,010 B
TOML
[package]
|
|
name = "clawdforge"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
license = "MIT"
|
|
description = "Async Rust client for the clawdforge HTTP service (a LAN bearer-token-gated wrapper around `claude -p`)."
|
|
repository = "https://gitea.sulkta.com/Sulkta-Coop/clawdforge"
|
|
readme = "README.md"
|
|
keywords = ["claude", "http-client", "sdk", "async"]
|
|
categories = ["api-bindings", "asynchronous"]
|
|
|
|
[dependencies]
|
|
reqwest = { version = "0.12", default-features = false, features = ["json", "multipart", "stream", "rustls-tls"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
thiserror = "1"
|
|
tokio = { version = "1", features = ["fs", "io-util", "rt"] }
|
|
tokio-util = { version = "0.7", features = ["io"] }
|
|
tracing = { version = "0.1", default-features = false, features = ["std"] }
|
|
url = "2"
|
|
bytes = "1"
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1", features = ["macros", "rt-multi-thread", "fs", "io-util", "time"] }
|
|
wiremock = "0.6"
|
|
tempfile = "3"
|
|
|
|
[[example]]
|
|
name = "basic"
|
|
path = "examples/basic.rs"
|