Releases: adityak74/quecto
Release list
quecto v0.1.1 (core)
quecto (core) v0.1.1
Performance: connection reuse.
What changed
- Replaced the per-request
agent()call (a freshureq::AgentBuilderbuild on everyquecto_raw/quecto_streamcall) with a singlestatic SHARED_AGENT: LazyLock<ureq::Agent>, built once and reused across all requests. Enables persistent HTTP connections across every LLM call and streaming chunk instead of a new connection pool per call. - Internal only — no public API changes (
agent()was private).
Quality
- Full workspace suite green (462 tests across all crates), clippy clean.
- Landed via #28.
quecto-agent releases alongside this as v0.2.2 with its own dispatch and tracing perf work.
quecto-agent v0.2.2
quecto-agent v0.2.2
Performance: tool dispatch and trace telemetry.
What changed
- Tool dispatch:
Registrymoved fromVec<Box<dyn Tool>>with a linearfind()scan to aBTreeMap<String, Box<dyn Tool>>keyed by tool name — lookup,has(), and dispatch are now tree-lookup instead of scanning every registered tool, andtool_names()/schemas()iterate in deterministic sorted order. - Trace telemetry:
TraceEvent'sidentityfield is nowRc<TraceIdentity>instead of a bareTraceIdentity. The ~10 trace-event emission sites inrun_loopnow bump a refcount per event instead of deep-cloning up to 6 heap-allocatedStringfields each time — one real allocation per run instead of one per event. (Requires serde'srcfeature;#[serde(flatten)]output is unchanged.) - Also picks up the connection-reuse fix from
quecto v0.1.1via its dependency on core.
Review note
PR #28's original description overstated two of these: the tool dispatch was described as "O(1) hash lookup" (it's actually a BTreeMap, O(log n), no hashing — still a real improvement over the linear scan, just mislabeled), and the trace-identity change originally didn't reduce clone count at all (it just moved the clone source, same number of deep clones per event). The Rc<TraceIdentity> fix above was implemented during review to make the clone-elimination claim actually true before merge. See the PR discussion for the full verification.
Quality
- Full workspace suite green (462 tests), clippy clean (no new warnings from this change).
- No public API break for typical usage;
TraceEvent'sidentityfield type change fromTraceIdentitytoRc<TraceIdentity>is technically visible to any external code pattern-matching on that field directly.
quecto-agent v0.2.1
quecto-agent v0.2.1
Capsules: declared write-key surface + load-time conflict guard.
Prompted by a design review of the capsules load/unload lifecycle: unloading a capsule frees its instructions but not any shared session state it may have written, so two capsules claiming the same state key can produce hard-to-trace "ghost" behavior. v1's active set only ever touched the system prompt (fully recomputed on every load/unload, so no such bug exists in the shipped v0.2.0), but this closes the gap ahead of any future capsule capability that writes real shared session state.
What's new
- A capsule can declare
writes:in itsCAPSULE.mdfrontmatter — a comma-separated list of session-state keys it intends to write. /loadnow rejects activating a capsule whose declaredwritesoverlap an already-active capsule's, with a message naming the conflicting key and capsule (e.g.cannot load beta: write key "theme" is already claimed by active capsule alpha) — before either capsule's instructions touch the system prompt.- The full three-part guard (declared surface, load-time conflict check, unload scope-clear contract) is documented as a hard design constraint in
docs/superpowers/specs/2026-07-23-capsules-design.mdfor any future capability that writes real session state.
Quality
- 4 new unit tests covering
writes:parsing and the conflict check (both the rejection and the disjoint-keys-coexist cases); full workspace suite green, clippy clean. - Live end-to-end UAT against the release binary in a real terminal session, including a scenario that confirms the conflict check walks every declared key across every active capsule, not just the first match — see
docs/UAT-capsule-write-conflict-report.md.
(#27)
quecto-agent v0.2.0
quecto-agent v0.2.0
Capsules: loadable instruction bundles for the chat REPL.
A Claude-Code-Skills-like extensibility system: reusable bundles of instructions (and optional scripts) discovered from ~/.quecto/capsules (user scope) and <cwd>/.quecto/capsules (project scope, overriding user for a shared name).
New commands
/capsules— list available and loaded capsules/load <name>//unload <name>— toggle a capsule mid-session/<capsule_name> [prompt]— load a capsule (if needed) and optionally route a prompt through it/capsule-create <name> <what it should do>— describe what you want in plain language and the agent drafts, validates, writes, and immediately loads a newCAPSULE.mdfor you — no hand-authored frontmatter required
Loaded capsules fold into the agent's system prompt and survive /clear. /capsule-create writes to project scope (<cwd>/.quecto/capsules/<name>/CAPSULE.md) and validates the capsule name against path traversal before touching the filesystem.
Quality
- Built task-by-task with TDD and independent review per task, plus a final whole-branch review that caught and fixed a path-traversal gap in
/capsule-create's name handling before merge. - 458 tests passing across the workspace, zero warnings.
- Live end-to-end UAT against
qwen3.6:35bon Ollama — seedocs/UAT-capsule-create-report.md.
Build
- Size-optimized release binary:
aarch64-apple-darwin, ~5.5 MB (grown from the v0.1.0 baseline as image support, the native Anthropic provider, and Mermaid rendering landed in between).
quecto core stays at v0.1.0 — this release only touches quecto-agent.
See CHANGELOG.md for the full day-by-day history.
quecto v0.1.0 (core)
quecto (core) v0.1.0
First official release of the quecto core crate — a minimal, vendor-neutral execution layer for LLM agents.
Highlights
- Four-function library API for driving an LLM agent loop
- Streaming support via SSE with a non-SSE fallback
- One-shot, REPL, and
--initCLI modes - 24 tests, clippy-clean, only two dependencies (
ureq,serde_json) - Size-optimized release build: ~1.3 MB static binary, no runtime
- Declared-scope and multi-provider runtime config support wired through the paired eval runner
This is the foundation crate that quecto-agent, quecto-mcp, and quecto-eval all build on.
quecto-agent v0.1.0
quecto-agent v0.1.0
First official release of quecto-agent — the coding agent built on the quecto core.
Highlights
- Full coding-agent loop: tool use, editing under approval, sandbox denylist, verification gates
- Session persistence: resume, undo, diff
- Manifest "flavors" with trust-on-first-use
- Interactive chat REPL (crossterm event loop, bracketed paste, Markdown + Mermaid rendering via
merman) - Reasoning controls (
/reasoning), session-scoped and persisted acrossresume - Multi-provider support: OpenAI-compatible and native Anthropic Claude Messages API (
--provider anthropic), with reasoning mapped tothinking.budget_tokens - Multimodal image input support (
--image) - Background process management and concurrent subagent delegation (
spawn_subagent,monitor_subagents,cancel_subagent, up to 8 concurrent) - Project-local
.qkbMarkdown notes - OpenTelemetry tracing (
otelfeature flag) across run loops, steps, tool dispatch, and completions - Native evaluation harness (
quecto-eval) with SQLite storage and pluggable graders (script, telemetry, LLM rubric) - Size-optimized release build: ~3.5 MB static binary, no runtime
- UAT: 41 black-box scenarios, 34 pass / 7 minor polish partials, 0 failures, 0 blocking defects (see
docs/UAT-report.md)
See CHANGELOG.md for the full day-by-day history.