Skip to content

Address Nexus service catalogs without mutating the caller namespace - #114

Merged
rmcdaniel merged 3 commits into
mainfrom
fix-nexus-target-namespace
Oct 11, 2026
Merged

rmcdaniel merged 3 commits into
mainfrom
fix-nexus-target-namespace

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Fix

Addresses #111. Add target_namespace to the ordinary client and authored Nexus workflow API. Service execution and its payload discovery/upload use the target's namespace and control credential. Worker requests keep the caller's namespace and worker credential. The scoped request view shares the HTTP pool and isolates discovery, payload cache and direct provider state.

Explicit targets participate in deterministic call identity and recorded metadata. Existing default-target identities and histories stay replayable. A changed recorded target raises NonDeterministicReplayError without publishing another service request or failing the workflow as an application error.

Twenty-six focused Nexus client, worker, payload and replay tests pass locally, including the new replay corpus fixture. All normal Python 3.10/3.11/3.12, integration, corpus, lint, package, docs, boundary and target-branch checks pass at a7c5d91. The merged wire correction #113 is included through a normal main merge. Publication and the actual installed worker proof remain under #111. Full terminal service/caller qualification stays under durable-workflow/workflow#753 and durable-workflow/server#394.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Reviewed a7c5d91d84add345c13e4b482ed15b518f5e7c6c against main aeded98bc64a3537f973a475cd524c4302b564e0. The target option affects only Nexus service requests. The request view shares the pool but isolates namespace discovery, upload, fetch cache and provider state. Control credentials authorize target requests while the worker continues using its original client and credential. No default call identity changes.

The target is in explicit call identity and recorded metadata. Default histories still replay, and changing the recorded target raises a typed replay mismatch before a new request. Focused tests exercise concurrent worker heartbeat, actual outgoing request headers/body, target-scoped payload upload, original caller/run metadata, worker forwarding and the minimal replay corpus fixture.

All source, integration, package, docs and target-branch checks pass in run 38128123832. This is source qualification. Issue #111 remains open until publication and actual worker execution. Terminal Nexus lifecycle remains durable-workflow/workflow#753.

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 11, 2026 09:30
@rmcdaniel
rmcdaniel merged commit 6778efb into main Oct 11, 2026
13 checks passed
@rmcdaniel
rmcdaniel deleted the fix-nexus-target-namespace branch October 11, 2026 09:31
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.

2 participants