Skip to content

feat: add Task.RuntimeMetadata for host-resolved worker secrets#154

Open
NicholasDCole wants to merge 1 commit into
conductor-oss:mainfrom
NicholasDCole:feat/task-runtime-metadata
Open

feat: add Task.RuntimeMetadata for host-resolved worker secrets#154
NicholasDCole wants to merge 1 commit into
conductor-oss:mainfrom
NicholasDCole:feat/task-runtime-metadata

Conversation

@NicholasDCole

Copy link
Copy Markdown

Summary

Adds a Dictionary<string,string> RuntimeMetadata field to the client Task model.

The server can resolve a worker's declared TaskDef.runtimeMetadata secret names at poll time and deliver the resolved values on the wire-only Task.runtimeMetadata (never persisted to task input). Without this field on the client model, that data is silently dropped on deserialization.

Changes

  • RuntimeMetadata with [DataMember(Name="runtimeMetadata", EmitDefaultValue=false)] — omitted when empty ([DataContract] makes Newtonsoft honor it). Wired into the constructor, ToString, Equals, and GetHashCode like OutputData.
  • Tests/Client/TaskRuntimeMetadataTests.cs — round-trips the field, omits it when empty.

Note

Authored without a local .NET toolchain (no dotnet in the authoring environment) — relies on CI for the build + test run. Please confirm CI is green.

🤖 Generated with Claude Code

The server can resolve a worker's declared TaskDef.runtimeMetadata secret names
at poll time and deliver the values on the wire-only Task.runtimeMetadata
(conductor-oss PR #1255) — never persisted to task input. Add the field to the
client Task model so it is not dropped on deserialization.

- Dictionary<string,string> RuntimeMetadata with [DataMember(Name="runtimeMetadata",
  EmitDefaultValue=false)] (empty omitted; [DataContract] makes Newtonsoft honor it).
- Wired into the constructor, ToString, Equals, and GetHashCode like OutputData.
- Tests/Client/TaskRuntimeMetadataTests.cs: round-trips and omit-when-empty.

Note: not built/tested locally (no dotnet in the authoring environment); relies
on CI for the build + test run.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 25.00000% with 9 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
Conductor/Client/Models/Task.cs 25.00% 9 Missing ⚠️
Flag Coverage Δ
unittests 2.89% <25.00%> (+0.38%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
Conductor/Client/Models/Task.cs 20.26% <25.00%> (+20.26%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant