Skip to content

Rust #325: serve caller-indexed Nexus operation reads - #772

Merged
rmcdaniel merged 9 commits into
mainfrom
rust-325-nexus-operations
Oct 26, 2026
Merged

rmcdaniel merged 9 commits into
mainfrom
rust-325-nexus-operations

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Part of #325. Serves caller-indexed Nexus operation reads like published Server 2.11.1, fixture first. These are read-only control-plane routes in the request's namespace.

Fixture first (01e803b26). The new nexus-operations fixture was recorded from published 2.11.1 three times, with identical results. It reads GET /api/workflows/{id}/nexus-operations and GET /api/workflows/{id}/runs/{runId}/nexus-operations: a workflow's and one run's outbound service calls in the request's namespace, with no existence check, and every form of the limit query.

Native (363a0edc4):

  • Both routes list the namespace's service calls for that caller, newest first, in PHP's row shape.
  • The limit follows PHP's (int) cast and is capped at the configured 200.
  • Named namespaces may read them.
  • Native holds no service-call rows yet (workflow_service_calls is written only by service endpoints, which are still unserved), so its lists are empty, as the fixture records.
  • Unit tests cover PHP's limit cast and the re-encoding of decoded JSON columns.
  • 894286739 adds an execution test that seeds workflow_service_calls rows. It checks the row shape (an empty map renders as [], attempt counting, ISO times), newest-first order, limit, the run-scoped form and namespace scoping. It passes on SQLite, PostgreSQL and MySQL.
  • Two more published route methods are served: they leave unserved-php-routes.v2.11.1.txt, and native now serves 145 of the 175 published route methods with current main (Rust #325: serve workflow-task cancellation scopes (open, prepare, deliver) #771) merged in.

Qualification: head 5ba6f0135 (current main 5867f369 merged, which includes #771):

  • SQLite, all targets: lib 310 and execution 520 pass.
  • Native shared fixtures recorded over HTTP against a debug server: nexus-operations and cancellation-scopes pass on SQLite, PostgreSQL 17, MySQL 8 and MariaDB 10.11.
  • PostgreSQL 17 and MySQL 8: execution nexus_operations and completion_budget pass, 11/11 on each.
  • No PHP app/ source changes.

🤖 Generated with Claude Code

rmcdaniel and others added 9 commits October 24, 2026 15:08
…blished 2.11.1

The workflow's and one run's outbound calls in the request's namespace,
with no existence check, and every form of the limit query. Recorded three
times, identical.
…2.11.1

GET /api/workflows/{id}/nexus-operations and its run-scoped form list the
namespace's service calls of that caller, newest first, in PHP's row shape,
with PHP's (int) limit cast capped at the configured 200. Named namespaces
may read them.
…ions

Conflicts resolved as unions. The two caller-indexed Nexus operation
routes leave the unserved list that arrived with #745; native serves 135
of the 175 published route methods on this branch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Native writes no service calls and takeover refuses a source that holds
any, so the fixture can only record PHP's empty answer. An execution test
now seeds rows to check the row shape, newest-first order, the limit, the
run-scoped form and namespace scoping, on SQLite, PostgreSQL and MySQL.
The module comment no longer says the rows come from a takeover, and the
port log lists the reads as served.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
) into rust-325-nexus-operations

Native now serves 140 route methods: main's 138 plus the two
caller-indexed Nexus operation reads. The comparator node test list keeps
both sides' tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ust-325-nexus-operations

The comparator node test list keeps both sides' tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…st-325-nexus-operations

# Conflicts:
#	.github/workflows/server-parity.yml
#	docs/rust-server-port.md
#	rust/src/runtime/execution.rs
#	rust/tests/fixtures/unserved-php-routes.v2.11.1.txt
…-operations

Conflicts kept both sides: the parity contract, probe and workflow test list
now carry the Nexus operations and record_local_activity entries together.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-operations

The port guide counts 145 served route methods: Nexus reads add two and
cancellation scopes three to the base 140. The workflow test list carries
both contract tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

Hosted CI on exact head 5ba6f0135c5996c7170256252ab172e2db17de1d (tree 72cb1dfb03993e7046fcc13874332de14089cb42) is terminal: 56 checks pass, 0 fail. One check is skipped by design: Candidate cancellation and prepared-local source qualification, which applies only to candidate-source runs. Runs: Shared Server fixtures 40271359651, PHPUnit Feature 40271359587, SonarQube 40271359586, Public Boundary 40271359591, PR #772 40271357303, all successful. The merge state is clean against main 5867f369. Security's source review passed (server-325 cursor 2039); merge is held for its final clearance on this head.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security clearance received for exact head 5ba6f0135c5996c7170256252ab172e2db17de1d, tree 72cb1dfb03993e7046fcc13874332de14089cb42, and only that head. Source: sender security, session 01a16c9c-ac8d-7280-bed7-a647973bc7d1, server-325 chat cursor 2050, client message security-772-final-clearance-5ba6f013-20261026. The source review passed earlier (cursor 2039). Hosted evidence is terminal on the unchanged head: Shared Server fixtures 40271359651 succeeded (43/43 jobs), and the rollup is all success with one documented path-inapplicable skip, 0 fail or pending; merge state clean. Scope is the reviewed read-only caller-indexed Nexus operation routes only. This does not authorize deployment.

@rmcdaniel
rmcdaniel merged commit edc8036 into main Oct 26, 2026
58 checks passed
@rmcdaniel
rmcdaniel deleted the rust-325-nexus-operations branch October 26, 2026 05:17
@rmcdaniel

Copy link
Copy Markdown
Member Author

Merged as edc8036debe6113dbf82fb02eef8a0c9514a1e6c. Parents are 5867f369643c5a361739b4529e67528d085f2718 (main) and 5ba6f0135c5996c7170256252ab172e2db17de1d (the cleared head). The merge tree 72cb1dfb03993e7046fcc13874332de14089cb42 equals the Security-cleared tree. Branch and backup ref deleted. Next Rust activation: workflow stream writes, requalified on this main.

rmcdaniel added a commit that referenced this pull request Oct 26, 2026
…e-adapters

Kept both sides: delegates, parity contract, probe and workflow test lists
carry bridge adapters with Nexus operation reads, and the port guide lists
both as served. It counts 146 served route methods: the base 140 plus
bridge webhooks, cancellation scopes and Nexus reads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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