Repository navigation
align default identity tags with .NET - #167
Merged
Merged
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Tomer Rosenthal (torosent)
marked this pull request as ready for review
October 6, 2026 20:22
Copilot started reviewing on behalf of
Tomer Rosenthal (torosent)
October 6, 2026 20:25
View session
Contributor
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The scoped behavior change has a documented migration path and focused compatibility coverage, with no unresolved review findings.
Review effort: Balanced
Findings: None
What changed in this PR
Aligns Go’s default automatic identity tags with .NET by omitting redundant orchestration identity while preserving an explicit activity opt-in.
Changes:
- Removes default identity tags from activities, sub-orchestrations, and ContinueAsNew.
- Adds
task.WithActivityOrchestrationIdentity()and documents migration. - Adds compatibility, replay, retry, and serialized-size coverage.
| File | Description |
|---|---|
| task/versioning_test.go | Updates tag validation and ContinueAsNew expectations. |
| task/tag_identity_test.go | Covers identity defaults, opt-in, replay, and retries. |
| task/tag_identity_bench_test.go | Measures serialized identity-tag overhead. |
| task/orchestrator.go | Makes activity identity optional and removes other default identity tags. |
| task/context_test.go | Updates encoding calls and historical identity fixtures. |
| task/activity.go | Adds the activity identity opt-in option. |
| README.md | Explains new defaults and migration. |
| internal/contextprop/tags.go | Allows encoding without orchestration identity. |
| internal/contextprop/tags_test.go | Tests optional identity, legacy formats, and data isolation. |
| CHANGELOG.md | Records behavior changes and compatibility guarantees. |
| api/context.go | Documents activity identity availability. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot started reviewing on behalf of
Tomer Rosenthal (torosent)
October 6, 2026 20:39
View session
halspang
approved these changes
Oct 7, 2026
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.

Go repeats owning-orchestration identity in activity, sub-orchestration, and ContinueAsNew tag maps even when the caller supplies no tags. Remove that payload and use native protocol identity fields, matching .NET's automatic-tag behavior.
Behavior
Activities expose their own name/version/task ID and the owning instance ID. Orchestrator contexts obtain their full identity from native history fields. There is no identity-tag encoder, decoder, or richer-identity activity option.
Caller tags, Go activity-tag inheritance, immutable context fields, namespace isolation, and trace fields are preserved. Alignment is specifically automatic identity tags, not all SDK tag features or caller-tag wire formats.
Verified against .NET main
8f1b135: scheduling, gRPC serialization, activity context, and pinned Core 3.9.0 history/tag propagation.Validation
Local
go test ./..., affected-package race tests,go build ./..., andgo vet ./...pass with DTS/Azurite/sample targets unset. Coverage includes caller-data isolation, replay/redelivery, cancellation/retries, and native child/ContinueAsNew identity.Fixed public protobuf fixture, previous → current: action 331 → 85, scheduled history 342 → 95, activity request 343 → 97 bytes. The previous payload exists only as a benchmark fixture. Reproduce with
go test ./task -run TestActivityIdentitySerializedSize -vor-run '^$' -bench BenchmarkActivityIdentityWireSize. These are serialization sizes, not storage/WAL or throughput measurements.