Skip to content

Commit 912cc2c

Browse files
authored
Merge pull request #10 from contextforge-org/user/luca/architecture-cleanup
refactor: zero-based architecture cleanup
2 parents 27116ed + 0864bf5 commit 912cc2c

100 files changed

Lines changed: 9936 additions & 6309 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,28 @@
88
# Default single-stack mode. Possible: controlplane, dataplane.
99
CF_MCP_STACK_MODE=dataplane
1010

11-
# cf-controlplane checkout. Default: v1.0.7, matching the publisher contract.
11+
# Optional developer checkout containing source overlays. Without this, the
12+
# current directory is the workspace and the binary can materialize embedded
13+
# assets beneath CF_INTEGRATION_DIR.
14+
# CF_INTEGRATION_ROOT=/path/to/contextforge-dev-tools
15+
16+
# cf-controlplane checkout. Default: main.
1217
# Possible: any branch, tag, or commit accepted by git checkout.
13-
CF_CONTROLPLANE_REF=v1.0.7
18+
CF_CONTROLPLANE_REF=main
1419

1520
# cf-controlplane repository. Default: IBM upstream.
1621
# Possible: any git clone URL.
1722
CF_CONTROLPLANE_REPO=https://github.com/IBM/mcp-context-forge.git
1823

19-
# cf-controlplane image used by upstream compose.
20-
# Default: ghcr.io/ibm/mcp-context-forge:latest.
24+
# cf-controlplane image used by upstream compose. By default, the harness maps
25+
# the freshly fetched origin/main revision to its commit-tagged GHCR image.
2126
# Set the full override only to select a different registry or immutable tag.
2227
# Possible: any Docker image reference.
2328
# CF_CONTROLPLANE_IMAGE=ghcr.io/ibm/mcp-context-forge:<tag>
2429

25-
# Official cf-controlplane image version suffix. Default: latest.
26-
# Used only when CF_CONTROLPLANE_IMAGE and IMAGE_LOCAL are unset.
27-
CF_CONTROLPLANE_VERSION=latest
30+
# Official cf-controlplane image selector. Default: main. `main` resolves to the
31+
# fetched origin/main SHA because upstream reserves `latest` for releases.
32+
CF_CONTROLPLANE_VERSION=main
2833

2934
# Build behavior. Default: auto.
3035
# Possible:
@@ -102,9 +107,8 @@ NGINX_PORT=8080
102107
# Direct public-origin override; otherwise derived from NGINX_PORT.
103108
# MCP_CLI_BASE_URL=http://127.0.0.1:8080
104109

105-
# Optional global MCP protocol override. Current probe/load/Inspector/live
106-
# workflows default to the latest dataplane-compatible session protocol,
107-
# 2025-11-25. Conformance keeps its pinned 2026-07-28 readiness default.
110+
# Optional global MCP protocol override. Probe, conformance, live-stack, and
111+
# performance workflows all default to the latest supported protocol.
108112
# MCP_PROTOCOL_VERSION=2026-07-28
109113

110114
# Local integration administrator. Stable random signing/encryption secrets are

.github/workflows/ci.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
name: Rust CI
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches: [main]
7+
8+
permissions:
9+
contents: read
10+
11+
concurrency:
12+
group: rust-ci-${{ github.workflow }}-${{ github.ref }}
13+
cancel-in-progress: true
14+
15+
env:
16+
CARGO_TERM_COLOR: always
17+
CARGO_TARGET_DIR: target
18+
RUSTFLAGS: -D warnings
19+
20+
jobs:
21+
quality:
22+
name: quality
23+
runs-on: ubuntu-24.04
24+
steps:
25+
- name: Checkout repository
26+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
27+
28+
- name: Install Rust toolchain
29+
uses: dtolnay/rust-toolchain@1.97.0
30+
with:
31+
components: clippy,rustfmt
32+
33+
- name: Restore Rust cache
34+
uses: Swatinem/rust-cache@v2.9.1
35+
36+
- name: Check formatting
37+
run: cargo fmt --all --check
38+
39+
- name: Run Clippy
40+
run: cargo clippy --all-targets --locked -- -D warnings
41+
42+
- name: Run full test suite
43+
run: cargo test --all-targets --locked
44+
45+
- name: Verify standalone lazy runtime state
46+
shell: bash
47+
run: |
48+
cargo build --locked --bin cf-integration
49+
sandbox=$(mktemp -d)
50+
binary="$GITHUB_WORKSPACE/target/debug/cf-integration"
51+
if (cd "$sandbox" && CF_INTEGRATION_DIR="$sandbox/state" "$binary" conformance report); then
52+
echo "report unexpectedly succeeded without prior results" >&2
53+
exit 1
54+
fi
55+
test ! -e "$sandbox/state"
56+
if (cd "$sandbox" && CF_INTEGRATION_DIR="$sandbox/state" "$binary" stack config --topology dataplane); then
57+
echo "stack config unexpectedly succeeded outside a checkout" >&2
58+
exit 1
59+
fi
60+
test -f "$sandbox/state/secrets.env"
61+
find "$sandbox/state/assets" \
62+
-path '*/docker/docker-compose.cf-integration.yaml' \
63+
-type f -print -quit | grep -q .
64+
65+
- name: Verify published package
66+
run: cargo package --locked
67+
68+
- name: Validate GitHub Actions workflows
69+
run: go run github.com/rhysd/actionlint/cmd/actionlint@v1.7.12
70+
71+
native:
72+
name: native (${{ matrix.target }})
73+
strategy:
74+
fail-fast: false
75+
matrix:
76+
include:
77+
- runner: ubuntu-24.04
78+
target: x86_64-unknown-linux-gnu
79+
- runner: macos-15
80+
target: aarch64-apple-darwin
81+
- runner: windows-2025
82+
target: x86_64-pc-windows-msvc
83+
runs-on: ${{ matrix.runner }}
84+
steps:
85+
- name: Checkout repository
86+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
87+
88+
- name: Install Rust toolchain
89+
uses: dtolnay/rust-toolchain@1.97.0
90+
with:
91+
targets: ${{ matrix.target }}
92+
93+
- name: Restore Rust cache
94+
uses: Swatinem/rust-cache@v2.9.1
95+
96+
- name: Run native tests
97+
shell: bash
98+
run: cargo test --all-targets --locked

0 commit comments

Comments
 (0)