Skip to content

feat: isolate external dataplane workflows - #13

Merged
lucarlig merged 9 commits into
mainfrom
user/luca/standalone-conformance
Sep 7, 2026
Merged

feat: isolate external dataplane workflows#13
lucarlig merged 9 commits into
mainfrom
user/luca/standalone-conformance

Conversation

@lucarlig

@lucarlig lucarlig commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Summary

External workflows can now run from the installed CLI without control-plane services, checkouts, worker setup, or secrets. --standalone supports stack, probe, load, conformance, and scoped debug tokens. Live suites continue to require the control plane.

  • Use an ephemeral RSA key and the dataplane's token endpoint; publish Redis configuration through the running dataplane's serializer.
  • Discover every fixture catalog page and preserve tool schemas, including parameter-header annotations. Share the config writer with normal external client conformance.
  • Dispatch actions directly through the runtime and share authenticated setup across probe, Inspector, and load. Remove forwarding types, duplicated setup branches, and unnecessary async wrappers while preserving token revocation and stack cleanup.
  • Keep captured tokens out of setup logs while retaining helper diagnostics. Stop the full conformance matrix after Ctrl-C cleanup and leave baselines unchanged.
  • Preserve consistent lane/protocol selectors and independent ClickStack telemetry.

No new dependencies. Existing HTTP primitives retain the wire-level control needed by negative protocol tests; Node's promise timers replace handwritten timer promises.

Validation

  • cargo fmt --all -- --check
  • cargo test --locked --all-targets: 394 passed. Removed one redundant source-text test and moved its checks into behavioral tests and parsed Compose assertions.
  • cargo clippy --locked --all-targets --all-features -- -D warnings
  • cargo package --allow-dirty --locked
  • Fresh standalone load from /tmp: 92 requests, zero failures, embedded assets, no control-plane checkout or secrets.
  • Modern standalone conformance completed setup, execution, and cleanup with no JWTs in setup logs. The fixture passed all 40 server scenarios; the published dataplane retained 39 server failures and one client failure, recorded only in temporary validation baselines.
  • Real SIGINT during a two-era matrix: cleanup completed, only one entry started, and baselines stayed byte-for-byte unchanged.
  • An intentionally blocked endpoint failed setup, skipped the workload, and cleaned up the partially started stack.
  • Earlier checks covered both fixture eras, paginated JSON/SSE discovery, actual tool schemas, and the normal external Compose config writer.

Committed baselines are unchanged. Related dataplane draft: contextforge-org/contextforge-data-plane#132, which requires the published cf-integration 0.3.1 release.

Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
@lucarlig lucarlig changed the title feat: run conformance without the control plane feat: isolate external dataplane workflows Sep 4, 2026
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
@lucarlig
lucarlig marked this pull request as ready for review September 7, 2026 09:06

@Lang-Akshay Lang-Akshay left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@lucarlig
lucarlig merged commit b3660f6 into main Sep 7, 2026
5 checks passed
@lucarlig
lucarlig deleted the user/luca/standalone-conformance branch September 7, 2026 10:49
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