Skip to content

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
mainfrom
dependabot/nuget/Microsoft.Agents.AI.Abstractions-1.0.0-preview.260121.1
Closed

Bump Microsoft.Agents.AI.Abstractions from 1.0.0-preview.251204.1 to 1.0.0-preview.260121.1#12
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/Microsoft.Agents.AI.Abstractions-1.0.0-preview.260121.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jan 24, 2026

Copy link
Copy Markdown
Contributor

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

Full 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 compatibility score

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 rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

…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>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Jan 24, 2026
@dependabot @github

dependabot Bot commented on behalf of github Jan 24, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #13.

@dependabot dependabot Bot closed this Jan 24, 2026
@dependabot
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants