Changelog¶
All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Before lattice]¶
Features¶
- Notices, messages that don't start or steer a turn (#75)
- otel: Telemetry that composes with reflexr's, untraced polling and mirror cursors (#67) (breaking)
- core: A message id is used once in a workspace (#66) (breaking)
- Carry the trace context on envelopes, as reflexr does (#65) (breaking)
- scores: Build the mirror on evalr's score mapping and ports (#59)
- mcp: The reads REST has, and commands carried out once per id on every surface (#56) (breaking)
- The rough edges stackr's template found: model settings, a streaming scripted model, a typed MCP resolver (#57)
- protocol: Let a client join at the head of the log, and read its tail (#58)
- examples: Docplan closes the evaluation loop with the [evals] extra (#52)
- evals: The [evals] extra over evalr (#39)
- examples: Docplan observed, rated and routed when configured (#35)
- litellm: Route agents through a LiteLLM proxy, with typed guardrail blocks (#34)
- agent: Typed run failures, recorded with a reason (#33)
- deploy: Grafana dashboards, tested against the metric registry (#32)
- langfuse: The Langfuse adapter for traces and feedback scores (#30)
- scores: Feedback as scores, a log mirror, and their ports (#29)
- core: Typed feedback, evaluator actors and the give_feedback command (#28)
- otel: Configure_telemetry, an OpenTelemetry SDK adapter (#27)
- telemetry: Trace turns, commits and tool calls, with a metric registry (#26)
- core: Record each run attempt's trace id (#25)
Bug fixes¶
- mcp: Refuse an empty command id, and align with reflexr (#76)
- agent: Stop a run whose claim is lost, and drop what it records once abandoned (#74)
- agent: Record a run left running as abandoned when its thread is next claimed (#72)
- Cancel-safe storage, and a runner that stops its runs at shutdown (#69) (breaking)
- mcp: Leave logging as it was when building the MCP server (#64)
- mcp: Ask an authorize hook before a client uses a workspace (#47)
- sql: Keep one connection per SQLite engine, so transactions queue in order (#46)
- deploy: Dashboards stackr can fetch, with rates that have data (#44)
- otel: Instrument httpx2 when httpx is not installed (#37)
Documentation¶
- An authorize example that serves both people and MCP clients (#48)
- Regenerate the changelog, and have the site regenerate it on every build (#45)
- Render lists on the site as GitHub does, and check them in the build (#43)
- Wrap up RFC-0002: status, open questions and ADR action items (#36)
- rfc: RFC-0002 observability, feedback, evaluation and the LLM gateway (#21)
Refactoring¶
- One Runner.execute, reads the workspace owns, scores on evalr, and parity with reflexr (#70) (breaking)
Testing¶
- No inline suppressions anywhere, as in reflexr (#40)
Miscellaneous¶
- Build the docs once, and deploy them in order (#71)
- Build docplan's image and start it, not only validate Compose (#55)
- Hold the docs script to the library's gates, and mark RFC-0002 Implemented (#41)
- A contributor Compose stack and a Compose-based dev container (#31)
0.1.0 - 2026-09-28¶
Features¶
- examples: Keep docplan's workspaces in a database when configured (#15)
- sql: Add SQLAlchemy storage and migrations (#9)
- examples: Add docplan, the reference implementation (#14)
- core: Describe a proposed edit when it is proposed (#13)
- core: Include an artifact's kind when a version is serialized (#10)
- surfaces: Add the WebSocket, REST and MCP surfaces (#8)
- agent: Add the pydantic-ai capability, live output and runner (#7)
- workspace: Add scoped workspace handles over pluggable storage (#6)
- core: Add the pure rules, conformance suite and host contract (#4)
Bug fixes¶
- fastapi: Watch only live runs in the threads a client follows (#12)
- agent: Record the result of a tool that retries or fails on its own (#11)
Documentation¶
- Publish the site at artifactr.alexnodeland.com from main (#19)
- Add the documentation site and brand (#16)
- Add architecture, thread protocol and ADRs for the library design