Repository navigation
chore(maf): migrate to schema 0.3.0 (Edition 2024) - #37
Merged
Merged
Conversation
Bump MAF Python and MAF .NET to canonical schema 0.3.0. Schema 0.3.0 ships the v2 protos rebased on `edition = "2024"` with explicit field presence as the default. The protobuf wire format is unchanged, but JSON serialisation now emits explicitly-set zero-valued scalars (`message_index = 0`, `turn_index = 0`, ...) that proto3 silently dropped. - MAF Python: bump `kurrent-agent-schema >= 0.3.0` and align the `protobuf` floor with the schema's new `>= 6.32` runtime requirement. - MAF .NET: ProjectReference already tracks the in-repo schema; only the README dependency listing needed bumping to 0.3.0. - Tests: `test_user_message_wire_format` (Python) updated to assert the Edition 2024 explicit-presence behaviour (zero is emitted). Added a sibling `test_user_message_unset_index_is_omitted` so the unset-omission case stays covered. Stale "proto3 omits default scalars" comments dropped from the eval round-trip tests on both sides; the existing defensive `.get(..., 0)` / `GetIntOrDefault` reads happen to be wire-shape agnostic, so no other test changes were needed. Verified: MAF .NET 138/138 integration tests pass; MAF Python 121/121 non-fact_extraction tests pass, all 8 fact_extraction tests pass in single-test isolation (pre-existing intra-file persistent-subscription flakiness, unrelated). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Review Summary by QodoMigrate MAF to schema 0.3.0 (Edition 2024)
WalkthroughsDescription• Migrate MAF to protobuf schema 0.3.0 with Edition 2024 • Update Python dependencies: kurrent-agent-schema >= 0.3.0, protobuf >= 6.32 • Update .NET README schema version to 0.3.0 • Adjust wire-format tests for explicit field presence behavior Diagramflowchart LR
A["Schema 0.2.1<br/>proto3"] -->|"Edition 2024<br/>explicit presence"| B["Schema 0.3.0<br/>Edition 2024"]
B -->|"Python deps"| C["kurrent-agent-schema >= 0.3.0<br/>protobuf >= 6.32"]
B -->|".NET deps"| D["README updated<br/>to 0.3.0"]
B -->|"JSON wire format"| E["Zero scalars<br/>now emitted"]
E -->|"Test updates"| F["Assert explicit zeros<br/>Add unset omission test"]
File Changes1. microsoft-agent-framework/python/pyproject.toml
|
Code Review by Qodo
1.
|
The 0.3.0 wheel's generated `_pb2.py` files call `ValidateProtobufRuntimeVersion(6, 32, 1, ...)` at import time, which rejects protobuf 6.32.0. The declared floor was `>= 6.32`, letting a resolver pick a runtime the package itself refuses to load. Tighten both the schema package and the MAF Python consumer to `>= 6.32.1` and ship the corrected schema as 0.3.1. No code or wire-format changes; only dependency metadata. Co-Authored-By: Claude Opus 4.7 (1M context) <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.
Summary
kurrent-agent-schemafloor to0.3.0and align itsprotobuffloor with the schema's new>= 6.32runtime."message_index": 0). One Python wire-format test updated to assert the new behaviour, sibling test added to keep the unset-omission case covered, stale "proto3 omits default scalars" comments dropped on both sides.Test plan
dotnet runagainstKurrent.AgentFramework.IntegrationTests: 138/138 pass.pytest --timeout=120excludingtests/test_fact_extraction.py: 121/121 pass in 2.67s.tests/test_fact_extraction.pytest in single-test isolation: 8/8 pass. (Pre-existing intra-file persistent-subscription flakiness when the file's tests run sequentially — unrelated to this migration; tracked separately.)🤖 Generated with Claude Code