Repository navigation
Releases
v14.0.1
- 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
- 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_idselector 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_largetool 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
- Remove unsupported runner resource kinds
stdio,httpandinproc. The process runner exposescollector,projectandcommand; MCP transports, initialization and tool discovery remain in the Workbench API. - Remove the runner's never-populated
server_identity,tool_countandrestartsfields. 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
v12.1.1
v12.1.0
v12.0.0
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):
ProblemDetailsis RFC 9457 (type,title,status,detail,instance) plus the extensioncode.ProblemTypeenumerates the type URIshttps://qyl.at/problems/<name>(served by qyl.at) andProblemCodethe stable codes. Headers are declared on the operations that send them (X-Trace-Idon collector 500s,WWW-Authenticateon workbench 401s); the body memberstrace_id,request_id,timestampandInternalServerError.error_codeare gone. - Paging (SCH-10):
next_cursoris an opaqueCursormarked@continuationToken;prev_cursoris deleted; the last page omitsnext_cursor. Every list operation is@listand spreadsCursorPageQuery(limit,cursor). - One
PageLimit(SCH-16): 1 to 1000, default 100, on all 14 list routes andSavedQueryRunRequest.limit. - Removed unused templates (SCH-11):
CursorPaginationParams,SortOrder,OffsetPaginationParams,OffsetPage<T>,TimeRangeParams,TimeRangePage<T>,StreamParams,StreamEvent<T>, theApiErrorunion,RateLimitError,AggregationParams,TimeBucket,OTel.Traces.SpanQueryFilters. - Release-stamped
info.version(SCH-6):prepackstamps the release version into the packed OpenAPI document andpostpackrestores0.0.0; the digest excludesinfo.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
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-Keyon create, a requiredIf-Matchon PATCH and DELETE,412/428, and201withLocationandETag. - 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, theQylWriteKeyAuthandQylDeleteKeyAuthschemes, and the scopesqyl:read,qyl:writeandqyl:delete. - Read side:
- a
cursoron every paged list; - trace filters (
start_time,end_time,service_name,errors_only); - time ranges for sessions and logs, and
session_idfor logs; - models for the three metric tools;
fetch_telemetryas an object keyed onview;ToolErrorwith 16 stable codes.
- a
- Packaging: the npm package now ships
models/metrics.tsp, whichindex.tspimports (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
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-Keyon create, a requiredIf-Matchon PATCH and DELETE,412/428, and201withLocationandETag. - 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, theQylWriteKeyAuthandQylDeleteKeyAuthschemes, and the scopesqyl:read,qyl:writeandqyl:delete. - Read side:
- a
cursoron every paged list; - trace filters (
start_time,end_time,service_name,errors_only); - time ranges for sessions and logs, and
session_idfor logs; - models for the three metric tools;
fetch_telemetryas an object keyed onview;ToolErrorwith 16 stable codes.
- a
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
No contract change: the revision stays sha256:3605ae27d2edf632, and the OpenAPI and JSON Schema are identical to 11.4.0.