Bump Microsoft.Agents.AI.Abstractions from 1.0.0-preview.251204.1 to 1.0.0-preview.260121.1 - #12
Closed
dependabot[bot] wants to merge 1 commit into
Conversation
…1.0.0-preview.260121.1 --- updated-dependencies: - dependency-name: Microsoft.Agents.AI.Abstractions dependency-version: 1.0.0-preview.260121.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
|
Superseded by #13. |
dependabot
Bot
deleted the
dependabot/nuget/Microsoft.Agents.AI.Abstractions-1.0.0-preview.260121.1
branch
January 24, 2026 05:54
ANcpLua
added a commit
that referenced
this pull request
Apr 21, 2026
…aver path CodeRabbit #9 + #12 together: - #12: SEMCONV_TAG was duplicated between bootstrap-weaver.sh (as "v1.40.0") and templates/registry/qyl/weaver.yaml (as `semconv_version: "1.40.0"`). Bumping semconv required editing both. Bootstrap now sed-extracts the version from weaver.yaml as the single source. - #9: unquoted $(${WEAVER_DIR}/weaver-${WEAVER_ARCH}/weaver --version) (SC2086) — quoted the command path. Both touch bootstrap-weaver.sh; one commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ANcpLua
added a commit
that referenced
this pull request
Apr 21, 2026
* chore(semconv): delete zero-caller C# outputs + scaffold Weaver migration
Dead code removal (per docs/contract-drift-architecture.md O-1/O-2):
- delete src/qyl.collector/Ingestion/OtlpAttributes.Utf8.g.cs (6923 LoC)
- delete src/qyl.instrumentation/Instrumentation/SemanticConventions.g.cs (~2600 LoC)
- delete src/qyl.instrumentation/Instrumentation/SemanticConventions.Utf8.g.cs (7555 LoC)
- strip the `csharp` + `csharpUtf8` targets + their ~125 LoC generator functions
from eng/semconv/generate-semconv.ts so future regenerates don't recreate them
- inline the five semconv keys (error.type / exception.*) in
ActivityExceptionTelemetry.cs since the only live consumer is three calls
Net: ~17,000 lines of unused generated code deleted, zero callers in src/,
0 errors / 13 warnings (unchanged). The facades under
src/qyl.contracts/Attributes/ remain the actually-consumed C# surface.
Weaver migration scaffold (not yet wired into the build):
- eng/semconv/templates/registry/qyl/{weaver.yaml,semconv.ts.j2}
- eng/semconv/registry-qyl/manifest.yaml
- .gitignore updates for .tools/ (local weaver binary + upstream clone)
and eng/semconv/out/ (template scratch)
The semconv.ts.j2 template proves the pipeline end-to-end: upstream v1.40.0
YAML registry → weaver → TS exports filtered by qyl's include_prefixes.
The rest of the template set (C# facades, TypeSpec, DuckDB SQL) is the
follow-up. Old generate-semconv.ts stays as-is until the Weaver templates
cover all three remaining outputs byte-close.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore(semconv): wire Weaver end-to-end with SQL + TS templates, scripted
Two working Weaver-side templates prove the pipeline against upstream
semconv v1.40.0, emitting into eng/semconv/out/ (gitignored):
- promoted_columns.g.sql.j2 — DuckDB column list, parent-prefix grouped,
suffix-driven BIGINT/DOUBLE type inference, 31k lines matching current
column count and type distribution
- semconv.ts.j2 — TypeScript `export const` flat list, parent-prefix
comment groups matching the legacy shape (enum `as const` blocks still
TODO; current output covers attribute keys)
Two bootstrap scripts so the pipeline is runnable from any clone:
- bootstrap-weaver.sh — downloads Weaver v0.22.1 native binary +
clones open-telemetry/semantic-conventions@v1.40.0 into .tools/
- run-weaver.sh — invokes `weaver registry generate` with the correct
--registry / --templates paths and writes to eng/semconv/out/
Not yet in scope (partial PR #141, cutover to follow):
- NUKE target swap — GenerateSemconv still calls `npm run generate`
(the stripped-down generate-semconv.ts) for TSP / facades / SQL / TS.
The Weaver templates run side-by-side for diff verification.
- TypeSpec template (6842-line output with scalars + enum unions + models)
- 3 facade templates (GenAi/Db/McpAttributes) — need qyl-extensions.json
param loading + upstream-enum merging + cross-cutting attribute pull
- TS `as const` enum blocks — structural port of the existing TS
generator's enum extraction pass
Run locally: ./eng/semconv/bootstrap-weaver.sh && ./eng/semconv/run-weaver.sh
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* refactor(semconv): cutover to Weaver — delete TS generator, hand-maintain facades
Weaver now owns the generated semconv outputs for which qyl consumers exist:
- src/qyl.dashboard/src/lib/semconv.ts (TypeScript attribute keys)
- src/qyl.collector/Storage/promoted-columns.g.sql (DuckDB promoted cols)
Facades moved to hand-maintained source. The prior Jinja-port of three
facades (GenAi/Db/Mcp) would have required porting qyl-extensions.json's
propertyOverrides + upstream enum-merge + cross-cutting-attribute lookup
into MiniJinja — 3–4h of template engineering for 3 files totaling <600
LoC that rarely change. Hand-edit is simpler:
- src/qyl.contracts/Attributes/DbAttributes.cs (was .g.cs)
- src/qyl.contracts/Attributes/GenAiAttributes.cs (was .g.cs)
- src/qyl.contracts/Attributes/McpAttributes.cs (was .g.cs)
TS enum `as const` blocks dropped: the sole consumer
(src/qyl.dashboard/src/components/genai/ToolDefinitionsViewer.tsx)
imports only flat attribute keys (GEN_AI_TOOL_*), not the enum objects.
All 7 imports resolve against the new Weaver output; dashboard
typecheck clean against the semconv change.
TypeSpec output (core/specs/generated/semconv.g.tsp, 6842 lines) stays
pinned at v1.40.0 — no Weaver template yet, no regenerator. When OTel
bumps semconv, write the TSP Jinja template or port by hand.
Deleted:
- eng/semconv/generate-semconv.ts (921 LoC)
- eng/semconv/qyl-extensions.json (250 LoC config)
- eng/semconv/package.json / package-lock.json / tsconfig.json
- eng/semconv/CHANGELOG.md (upstream dependency tracker)
- eng/semconv/node_modules (gitignored)
NUKE `GenerateSemconv` now shells out to bootstrap-weaver.sh +
run-weaver.sh. SemconvInstall npm target removed entirely.
Net this commit: +754 / -4112 = -3,358 LoC. Plus the -22,005 LoC from
the previous commit on this branch gives the PR -25,363 LoC total for
the contract-drift cleanup + Weaver cutover.
Full solution build: 0 errors, 74 warnings (unchanged from main).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(semconv): cross-platform weaver bootstrap/run for Linux CI
Schema Drift failed on d1c49a4 because run-weaver.sh hardcoded the
macOS-arm64 weaver binary path. bootstrap already selected the right
release asset per arch; the runner now uses the matching path.
Darwin:arm64 / Darwin:x86_64 / Linux:x86_64 supported. Windows explicit
unsupported — qyl CI is Linux-only.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(semconv): bootstrap-weaver.sh cross-platform too
Follow-up to 4a4f7c5 — also fix bootstrap.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat(semconv): TypeSpec template — Weaver owns all three semconv outputs
Ports the 6842-line semconv.g.tsp shape to a 165-line MiniJinja template:
- Common scalars (TraceId/SpanId/TokenCount/...) as a fixed prelude
- Keys namespace — alias-per-attribute grouped by root namespace
- Union types — one per enum-typed attribute (`*Value`) with members +
string fallback for unknown values
- Per-domain attribute models with @Encodedname + type-correct fields
TypeSpec reserved identifiers (namespace, enum, union, unknown, ...)
are backtick-escaped via a `safe()` macro. 0 compile errors on core/specs
npm run compile against the full qyl TypeSpec schema (18 unrelated
upstream warnings, pre-existing).
run-weaver.sh now installs into three final destinations:
- src/qyl.dashboard/src/lib/semconv.ts (1368 lines)
- src/qyl.collector/Storage/promoted-columns.g.sql (1369 lines)
- core/specs/generated/semconv.g.tsp (6953 lines)
`nuke GenerateSemconv` → bootstrap-weaver.sh + run-weaver.sh. The Weaver
migration is complete: the TS `generate-semconv.ts` stack (921 LoC +
qyl-extensions.json + npm + tsconfig + CHANGELOG + node_modules) is gone
and all three pipeline outputs flow through the Jinja templates.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(build): inline ContractGenerator attribute lists, drop qyl-extensions.json dep
Schema Drift CI failed on e0b44f3 because GenerateContracts still read
eng/semconv/qyl-extensions.json, which was deleted in the Weaver cutover
(d1c49a4). The JSON's only role for this generator was to supply the
per-facade attribute name lists; everything else (Source, Signals,
required-attrs, metrics) was already hard-coded in C#.
Inlined the 40 gen_ai and 12 db attribute names as `string[]` constants
at the top of ContractGenerator.cs. Dropped the LoadDomains + FindFacade
+ ExtractAttributes JsonDocument path (~80 LoC).
GenerateContracts target in BuildPipeline.cs no longer passes an
extensionsJsonPath. One less arg on the Generate() signature.
Bumping semconv = edit the two attribute arrays. No JSON parsing.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(semconv): promoted-columns suffix checks use column name, not dotted attr
The suffix checks (_tokens / _count / _size / _duration / ...) ran against
the dotted attribute name. That only matches when the last semconv segment
has an underscore immediately before the suffix. Names like
`azure.cosmosdb.request.body.size` end with a bare `size` — the `_size`
check never fired, column fell through to VARCHAR.
Fix: compute the column name (`.` → `_`) first, run suffix checks against
the underscored form. Every attribute now has the bare suffix preceded by
an underscore, so the check works uniformly across all semconv prefixes.
Verified:
azure_cosmosdb_request_body_size BIGINT (was VARCHAR)
gen_ai_usage_input_tokens BIGINT
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* refactor(semconv): delete registry-qyl/manifest.yaml — include_prefixes single-source
CodeRabbit #4: include_prefixes was duplicated across registry-qyl/
manifest.yaml and templates/registry/qyl/weaver.yaml. The manifest.yaml
file isn't read by Weaver (Weaver uses the --registry flag directly
against the upstream clone); it was pure documentation that drifted.
Weaver's templates/registry/qyl/weaver.yaml is the single authoritative
location for params.include_prefixes. Deleted the duplicate manifest.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* refactor(semconv): template headers read version from params, not literal
CodeRabbit #6: the three template headers hardcoded v1.40.0 directly.
Replaced with `{{ params.semconv_version }}` so bumping semconv
requires one edit (weaver.yaml) instead of four (three templates +
weaver.yaml).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(semconv): bootstrap reads SEMCONV_TAG from weaver.yaml + quote weaver path
CodeRabbit #9 + #12 together:
- #12: SEMCONV_TAG was duplicated between bootstrap-weaver.sh (as
"v1.40.0") and templates/registry/qyl/weaver.yaml
(as `semconv_version: "1.40.0"`). Bumping semconv required editing
both. Bootstrap now sed-extracts the version from weaver.yaml as
the single source.
- #9: unquoted $(${WEAVER_DIR}/weaver-${WEAVER_ARCH}/weaver --version)
(SC2086) — quoted the command path.
Both touch bootstrap-weaver.sh; one commit.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs(instrumentation): explain why ActivityExceptionTelemetry inlines semconv keys
CodeRabbit #7 suggested the five `private const string` keys should use
GenAiAttributes.*. The suggestion doesn't fit: error.type and the four
exception.* keys belong to the `error.*` / `exception.*` semconv prefixes,
not to the three namespaces qyl facades (gen_ai / db / mcp). Inlining is
correct; upgraded the comment so the next reviewer doesn't re-litigate.
Promote to ErrorAttributes / ExceptionAttributes facade in
src/qyl.contracts/Attributes/ the moment a second caller appears.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* refactor(semconv): drop the semconv.g.tsp bridge — imported but never referenced
The generated TypeSpec file pulled upstream semconv attribute keys into
qyl's TypeSpec namespace as typed `Keys.<Domain>.<field>` aliases +
per-attribute union/model declarations. main.tsp imported it, but grep
across all hand-written .tsp files found exactly one hit for
`Keys.` / `OTel.SemConv.` — in a comment. Zero typed references.
6953 lines of generated TypeSpec + 165 lines of Jinja template + a
pipeline stage, all for a feature nobody uses. The remaining Weaver
templates (semconv.ts, promoted-columns.g.sql) stay — those have live
consumers.
Deletes:
- core/specs/generated/semconv.g.tsp (6953 LoC)
- eng/semconv/templates/registry/qyl/semconv.g.tsp.j2 (165 LoC)
- import line + comment block in core/specs/main.tsp
- TSP stanza in run-weaver.sh + the TSP_DEST install line
- TSP template entry in weaver.yaml
TypeSpec compile still clean (0 errors, 18 unrelated upstream warnings).
qyl.slnx build still clean (0 errors).
If a consumer ever wants typed semconv identifiers in TypeSpec, the
template is trivially resurrectable from git history.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ANcpLua
added a commit
that referenced
this pull request
May 6, 2026
Allows Dependabot/Renovate in Claude Code actions and pins auto-merge to renovate-config PR #12.
ANcpLua
added a commit
that referenced
this pull request
Jul 27, 2026
…ng names the live package §6.1 now states the per-package lineage version story (product surfaces 1.0.0, producer ABI lineage anchor==major, contract 4.x revision-pinned; superseded IDs unlisted after indexing, never shimmed; #12+#13 as one major). G5 makes the canonical scope name a ledgered surface — published name until the first post-launch major, family name thereafter, readers accept both from launch. Read-side tolerance holds by construction: no scope-name gate exists in collector or dashboard; the only old-string occurrence was the onboarding snippet recommending the retired .Hosting ID, now Qyl.Telemetry.Hosting. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated Microsoft.Agents.AI.Abstractions from 1.0.0-preview.251204.1 to 1.0.0-preview.260121.1.
Release notes
Sourced from Microsoft.Agents.AI.Abstractions's releases.
1.0.0-preview.260121.1
What's Changed
AIToolfrom DI by @DeagleGross in .NET: Improve resolvingAIToolfrom DI microsoft/agent-framework#3175AgentRunResponseandAgentRunResponseUpdateclasses by @SergeyMenshykh in .NET: [Breaking] RenameAgentRunResponseandAgentRunResponseUpdateclasses microsoft/agent-framework#3197Full Changelog: microsoft/agent-framework@dotnet-1.0.0-preview.260108.1...dotnet-1.0.0-preview.260121.1
1.0.0-preview.260108.1
What's Changed
Full Changelog: microsoft/agent-framework@dotnet-1.0.0-preview.251219.1...dotnet-1.0.0-preview.260108.1
1.0.0-preview.251219.1
What's Changed
... (truncated)
Commits viewable in compare view.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)