v1.1.0
Added
- Advertise a typed
outputSchema(SEP-2106) on every MCP tool, derived from the
result types viaschemars(gated behind themcpfeature). This completes the
structured-output story: clients now get both the machine-readable
structuredContentand a schema to validate it against.download,
get_version, and the batch tools serialize dedicated DTOs so their schema and
output share one source of truth. Drift tests assert every serialized field is a
declared schema property and every required property is emitted, so the schema
andstructuredContentcan never diverge.
Changed
- Raw
println!/eprintln!/print!/eprint!/dbg!are denied in production code across the whole
workspace (clippyprint_stdout/print_stderr/dbg_macro);tracingis the sole diagnostic
surface, and CLI result output to stdout opts back in per call site
(#[expect(clippy::print_stdout)]). Language bindings were regenerated with alef 0.48.11. - Breaking: the
telemetry-initCargo feature is renamed tootelto match the org-wide
observability feature name; update--features telemetry-initinvocations to--features otel. - Breaking: the
crawlberglibrary is now emit-only — it installs no global subscriber or OTLP
exporter. The subscriber/OTLP install (init_otlp,TelemetryConfig,TelemetryGuard,
TelemetryInitError) and the console-logging module (LogConfig,LogFormat,try_init,layer)
moved tocrawlberg-cli; the libraryloggingfeature is removed. The libraryotelfeature no
longer pulls the exporter/subscriber stack — it only forwardsliter-llm/otelso theai
integration's GenAI metrics compile in. crawlberg's own spans, semantic-convention attributes, and
metric instruments remain always-on and flow into whatever exporter the consumer installs. The W3C
helpers (with_traceparent,current_traceparent) are unchanged. Consumers that installed
telemetry via the library should usecrawlberg-cli --features otel(export is activated at runtime
byOTEL_EXPORTER_OTLP_ENDPOINT) or install their own subscriber. crawlberg-cligains anotelfeature that installs the OTLP export pipeline for every command
(includingserve), gated at runtime byOTEL_EXPORTER_OTLP_ENDPOINT; the console subscriber is
installed by default when OTLP is not configured. The server Docker image builds with
crawlberg-cli/otel.- Upgrade
html-to-markdown-rs3.9 → 3.10 andliter-llm1.11 → 1.12.liter-llm1.12 makes
tracingan always-on dependency (itstracingCargo feature is gone) and ships a real OTLP
export path in its CLI; crawlberg'sotelforwarding toliter-llm/otel(behindai) is
unaffected.
Fixed
- The publish workflow no longer leaves the Homebrew formula pointing at a stale bottle when a
release republishes the CLI.
Zig
Add to your build.zig.zon:
.dependencies = .{
.crawlberg-zig = .{\n .url = \"https://github.com/xberg-io/crawlberg/releases/download/v1.1.0/crawlberg-zig-v1.1.0.tar.gz\",\n .hash = \"crawlberg-1.1.0-IoY1CoLGxSAZ9_w8jwtS-tSzQ1KhJEoxbQAAL0FHTVpW\",\n },\n},\n```\n