Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
# Copy this file to .env for local runs. .env is ignored by git.
# Shell variables override values from .env:
# CF_CONTROLPLANE_REF=user/luca/dataplane-integration-fixes \
# cargo run --locked -- stack up --topology dataplane
# cargo run --locked -- stack up --lane external

# Default single-stack mode. Possible: controlplane, dataplane.
CF_MCP_STACK_MODE=dataplane
# Default execution lane. Possible: builtin, external.
CF_MCP_LANE=external

# Optional developer checkout containing source overlays. Without this, the
# current directory is the workspace and the binary can materialize embedded
Expand Down Expand Up @@ -112,9 +112,9 @@ NGINX_PORT=8080
# Direct public-origin override; otherwise derived from NGINX_PORT.
# MCP_CLI_BASE_URL=http://127.0.0.1:8080

# Optional global MCP protocol override. Probe, conformance, live-stack, and
# performance workflows all default to the latest supported protocol.
# MCP_PROTOCOL_VERSION=2026-07-28
# Optional operational MCP protocol mode override for probe, load, live, and
# Inspector workflows. Possible: modern, legacy. Default: modern.
# MCP_PROTOCOL_VERSION=modern

# Local integration administrator. Stable random signing/encryption secrets are
# created automatically under CF_INTEGRATION_DIR when their overrides are unset.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
exit 1
fi
test ! -e "$sandbox/state"
if (cd "$sandbox" && CF_INTEGRATION_DIR="$sandbox/state" "$binary" stack config --topology dataplane); then
if (cd "$sandbox" && CF_INTEGRATION_DIR="$sandbox/state" "$binary" stack config --lane external); then
echo "stack config unexpectedly succeeded outside a checkout" >&2
exit 1
fi
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
exit 1
fi
test ! -e "$sandbox/state"
if (cd "$sandbox" && CF_INTEGRATION_DIR="$sandbox/state" "$binary" stack config --topology dataplane); then
if (cd "$sandbox" && CF_INTEGRATION_DIR="$sandbox/state" "$binary" stack config --lane external); then
echo "stack config unexpectedly succeeded outside a checkout" >&2
exit 1
fi
Expand Down
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ Scope:
- Keep generated checkout/build/runtime state under `.integration/` or `CF_INTEGRATION_DIR`.
- Preserve the public routing contract: `/servers/{virtual_host_id}/mcp` goes to `cf-dataplane`; raw `/mcp` and UI/API traffic go to `cf-controlplane`.
- Use published `cf-dataplane` images by default. Local builds should be explicit overrides.
- Keep `CHANGELOG.md` current for user-visible behavior, CLI, workflow, and packaging changes. Add normal changes under `Unreleased`; when bumping the package version, move those entries into a dated version section.
74 changes: 74 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Changelog

All notable changes to `cf-integration` are recorded here.

The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.3.0] - 2026-09-03

### Added

- Added semantic `modern` and `legacy` MCP protocol selectors across commands.
- Standardized routed workflow selection on `builtin`, `external`, and, where
applicable, `fixture-direct` lanes.
- Added standalone external-dataplane load tests that disable the control plane
during the measured phase and populate a per-run mocked Redis snapshot using
the dataplane's current routing schema.
- Added no-login ClickStack observability with control-plane and dataplane
traces, native dataplane HTTP metrics, and routed-service logs.
- Added a concise command guide covering stack, probe, load, live, conformance,
CI, and debug workflows.

### Changed

- Reused the external conformance stack between compatible server and client
phases while preserving setup, execution, and cleanup failures.
- Moved ClickStack into an independent Compose lifecycle so managed test cleanup
leaves telemetry available for inspection; explicit `stack down` removes it.
- Made ClickStack the default for non-performance workflows and an explicit
opt-in for load tests to avoid skewing benchmark results.

### Fixed

- Flushed conformance results before propagating a failed child-process exit.
- Prevented duplicate ClickStack trace and metric ingestion by using its built-in
OTLP pipelines once.

## [0.2.0] - 2026-09-01

### Added

- Added embedded runtime assets so the published crate works outside its source
checkout.
- Added the three-lane MCP conformance matrix, checked-in baselines, isolated
official fixtures, and client-conformance coverage for the external dataplane.
- Added native release binaries and automated crate publishing.

### Changed

- Consolidated the harness into the `cf-integration` package and decomposed its
runtime into focused stack, MCP, conformance, and performance workflows.
- Standardized terminal progress and conformance result reporting.

### Fixed

- Made runtime paths, Docker Compose invocation, image pulls, and source-image
builds portable across supported hosts.
- Preserved all conformance lane and cleanup failures in final results.

## [0.1.0] - 2026-08-28

### Added

- Initial Rust CLI release for ContextForge stack orchestration, routed MCP
probing, live tests, load tests, and official conformance execution.
- Added builtin and external dataplane routing through reusable Docker Compose
overlays.

[Unreleased]: https://github.com/contextforge-org/contextforge-dev-tools/compare/v0.3.0...HEAD
[0.3.0]: https://github.com/contextforge-org/contextforge-dev-tools/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/contextforge-org/contextforge-dev-tools/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/contextforge-org/contextforge-dev-tools/releases/tag/v0.1.0
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "cf-integration"
version = "0.2.0"
version = "0.3.0"
edition = "2024"
rust-version = "1.97"
license = "Apache-2.0"
Expand All @@ -18,10 +18,12 @@ include = [
"/src/**",
"/docker/**",
"/scripts/locustfile_mcp.py",
"/scripts/prepare_standalone_config.py",
"/scripts/live_protocol/sitecustomize.py",
"/scripts/conformance/write_client_config.py",
"/tests/conformance/baselines/**",
"/README.md",
"/CHANGELOG.md",
"/LICENSE",
]

Expand Down
Loading