Skip to content
This repository was archived by the owner on Oct 19, 2026. It is now read-only.

Releases

v14.0.1

Choose a tag to compare

@ANcpLua ANcpLua released this 17 Oct 02:50
  • Package both contracts with native npm and .NET tools. Remove the redundant build host, retired check targets and workflow wrappers.
  • Add the solution used by console inspections and remove obsolete suppressions with the retired build infrastructure.
  • Keep the emitted API shapes and contract revision unchanged from 14.0.0.

v14.0.0

Choose a tag to compare

@ANcpLua ANcpLua released this 16 Oct 15:35
  • Keep resource metadata in its attribute collection instead of duplicating semantic-convention vocabulary in never-populated flattened fields and closed provider/language enums. SemanticConventions owns the generated vocabulary.
  • Remove unused session-event, log-template and span-statistics DTOs and unused error, event-domain and span-flag enums. Verify cross-language serialization with the runner log response that the API actually serves.
  • Preserve producer severity text as a string, allow arbitrary instrumentation library versions, expose scope/resource schema URLs and use unsigned 32-bit span/link/log flags.
  • Declare the NuGet package's Apache-2.0 license metadata.
  • Preserve metric resource and instrumentation scope metadata, expose complete conflicting instrument descriptors, and allow an exact series_id selector on range and saved queries. Ambiguous range queries can return 409.
  • Represent unknown historical log observation timestamps and unnamed instrumentation scopes without inventing values.
  • Make unknown log event and streaming timestamps optional and keep span start and end timestamps required.
  • Expose paged original metric points with exact signed integers, unsigned counts, ordered exemplars, native exponential buckets and summary quantiles. Keep historical originals explicitly unknown and label derived range-query values as float64 projections.
  • Generate typed nullable C# unions and support numeric variants shared between contract namespaces; verify the restored package with real JSON round trips.
  • Enforce the exact signed and unsigned 64-bit ranges in JSON Schema and Zod decimal-string validators, matching .NET deserialization.
  • Add an explicit response_too_large tool failure for an original record that cannot fit a complete MCP response; raw metric points must not be compacted into partial evidence.
  • Pin .NET SDK 10.0.401 in global.json, matching the repository toolchain and preventing an installed preview SDK from being selected implicitly.

v13.0.0

Choose a tag to compare

@ANcpLua ANcpLua released this 16 Oct 13:30
  • Remove unsupported runner resource kinds stdio, http and inproc. The process runner exposes collector, project and command; MCP transports, initialization and tool discovery remain in the Workbench API.
  • Remove the runner's never-populated server_identity, tool_count and restarts fields. Process restart actions remain supported. Read MCP server identity and discovered tools from Workbench connection and discovery snapshots.
  • Verify the runner's exact wire shape and retained MCP contracts in clean npm and NuGet consumers.
  • Probe npmjs.org explicitly when checking the published version, including the scoped registry override.

v12.1.2

Choose a tag to compare

@ANcpLua ANcpLua released this 14 Oct 09:15

Full Changelog: v12.1.1...v12.1.2

v12.1.1

Choose a tag to compare

@ANcpLua ANcpLua released this 12 Oct 14:38

Full Changelog: v12.1.0...v12.1.1

v12.1.0

Choose a tag to compare

@ANcpLua ANcpLua released this 12 Oct 10:03

What's Changed

  • ci(publish): accept commits reachable from a release/* branch; AGENTS.md names the release-branch rule by @ANcpLua in #52

Full Changelog: v12.0.0...v12.1.0

v12.0.0

Choose a tag to compare

@ANcpLua ANcpLua released this 11 Oct 15:25
e7a29bb

Contract 12.0.0 (#51), the breaking cleanup decided as Contract 12.0.0 in the 2026-10-11 qyl-dev audit. The revision is sha256:b29439eba28e752b (11.6.0: sha256:d926c3c6ab829cbf); the digest payload tag moves to qyl-contract-revision-v4 because info.version is no longer hashed.

  • Problems (SCH-14, SCH-20): ProblemDetails is RFC 9457 (type, title, status, detail, instance) plus the extension code. ProblemType enumerates the type URIs https://qyl.at/problems/<name> (served by qyl.at) and ProblemCode the stable codes. Headers are declared on the operations that send them (X-Trace-Id on collector 500s, WWW-Authenticate on workbench 401s); the body members trace_id, request_id, timestamp and InternalServerError.error_code are gone.
  • Paging (SCH-10): next_cursor is an opaque Cursor marked @continuationToken; prev_cursor is deleted; the last page omits next_cursor. Every list operation is @list and spreads CursorPageQuery (limit, cursor).
  • One PageLimit (SCH-16): 1 to 1000, default 100, on all 14 list routes and SavedQueryRunRequest.limit.
  • Removed unused templates (SCH-11): CursorPaginationParams, SortOrder, OffsetPaginationParams, OffsetPage<T>, TimeRangeParams, TimeRangePage<T>, StreamParams, StreamEvent<T>, the ApiError union, RateLimitError, AggregationParams, TimeBucket, OTel.Traces.SpanQueryFilters.
  • Release-stamped info.version (SCH-6): prepack stamps the release version into the packed OpenAPI document and postpack restores 0.0.0; the digest excludes info.version.

Consumer migration is listed in #51. Because the revision changes, the ripple order applies: the qyl Collector adopts 12.0.0 and deploys first, api.qyl.at must serve sha256:b29439eba28e752b, then qyl.mcp re-pins.

v11.6.0

Choose a tag to compare

@ANcpLua ANcpLua released this 11 Oct 14:39
4f2143c

Contract 11.6.0 (#49). The revision is sha256:d926c3c6ab829cbf (11.5.0: sha256:3605ae27d2edf632). It is identical in content to v11.6.0-rc.1, which ran the qyl Collector (qyl #669) and the qyl.mcp drafts (qyl.mcp #148, #150) green in CI.

  • Write base: ResourceBase (id, created_at, updated_at, etag), Idempotency-Key on create, a required If-Match on PATCH and DELETE, 412/428, and 201 with Location and ETag.
  • Resources: annotations on a trace, span or session, and saved queries (create, update, delete, :run; a duplicate name returns 409).
  • Credentials: key roles ingest/read/write/delete, the QylWriteKeyAuth and QylDeleteKeyAuth schemes, and the scopes qyl:read, qyl:write and qyl:delete.
  • Read side:
    • a cursor on every paged list;
    • trace filters (start_time, end_time, service_name, errors_only);
    • time ranges for sessions and logs, and session_id for logs;
    • models for the three metric tools;
    • fetch_telemetry as an object keyed on view;
    • ToolError with 16 stable codes.
  • Packaging: the npm package now ships models/metrics.tsp, which index.tsp imports (SCH-1, #47). 11.5.0 lacked it.

A consumer that adopts this release changes the revision it advertises, so the qyl Collector must deploy and serve it before qyl.mcp adopts it.

v11.6.0-rc.1

v11.6.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@ANcpLua ANcpLua released this 11 Oct 14:07
4f2143c

Release candidate for Contract 11.6.0 (#49). The contract revision is sha256:d926c3c6ab829cbf (11.5.0: sha256:3605ae27d2edf632).

  • Write base: ResourceBase (id, created_at, updated_at, etag), Idempotency-Key on create, a required If-Match on PATCH and DELETE, 412/428, and 201 with Location and ETag.
  • Resources: annotations (on a trace, span or session) and saved queries (create, update, delete, :run; a duplicate name returns 409).
  • Credentials: key roles ingest/read/write/delete, the QylWriteKeyAuth and QylDeleteKeyAuth schemes, and the scopes qyl:read, qyl:write and qyl:delete.
  • Read side:
    • a cursor on every paged list;
    • trace filters (start_time, end_time, service_name, errors_only);
    • time ranges for sessions and logs, and session_id for logs;
    • models for the three metric tools;
    • fetch_telemetry as an object keyed on view;
    • ToolError with 16 stable codes.

Everything is additive. A consumer that adopts this changes the revision it advertises, so the qyl Collector must deploy and serve it before qyl.mcp adopts it. This candidate exists so those two can run real CI before 11.6.0 is final.

v11.5.0

Choose a tag to compare

@ANcpLua ANcpLua released this 11 Oct 08:32
1e691a3

No contract change: the revision stays sha256:3605ae27d2edf632, and the OpenAPI and JSON Schema are identical to 11.4.0.

  • Node is pinned exactly to 24.21.0 in mise.toml (#44). publish.yml no longer upgrades npm, because Node 24.21.0 bundles npm 11.19.0 for trusted publishing (#43).
  • Renovate now extends ANcpLua/renovate-config like qyl.mcp, and the separate auto-merge.yml workflow is removed (#41).