Files
pulse/docs/release-control/control_plane.json
T
rcourtman 22b9abf231 Fix the release preflight worker and Helm publish, and map v6.4.3 to release/v6.4
Three defects that the v6.4.3-rc.1 cut exposed, each with its contract note
and proof:

1. scripts/release-preflight-worker.sh published the smoke stack on host port
   7655 and probed it directly. pulse-dev also hosts the maintainer's dogfood
   Pulse instance on 127.0.0.1:7655 and a second instance on 17655, so the
   release smoke failed to start after every other stage had passed on the
   qualified head. The worker now honours PULSE_RELEASE_PREFLIGHT_E2E_PORT,
   otherwise takes the first candidate host port pair it verifies free and
   fails fast when none is, probes health and update status on that port, and
   hands Playwright the same base URL.

2. .github/workflows/publish-helm-chart.yml resolved the chart version before
   checking out the repository, but de41ea1883 made that step call
   scripts/write_github_output.py, so every chart publish since failed with
   "can't open file". Run 33580123246 hit it after all other staging passed;
   the checkout now precedes the resolver.

3. docs/release-control/control_plane.json maps the 6.4.3 version prefix to
   release/v6.4. Run 33579042375, dispatched from main, failed inside the
   compiler dispatch because main advanced one minute after the pipeline
   pinned its source SHA; with pull requests landing every few minutes a
   candidate cannot hold its SHA between prepare and compile. release/v6.4
   was created from main at the exact-SHA-qualified commit 56e51e622e and
   carries these same fixes; v6.4.3-rc.1 published from it.

The deployment-installability contract records the worker port and toolchain
rules and the Helm checkout order; release_preflight_test.py and
build_release_assets_test.go pin them.
2026-09-02 09:32:40 +01:00

88 lines
3.8 KiB
JSON

{
"version": "1",
"system": "pulse-release-control",
"execution_model": "direct-repo-sessions",
"agent_values_doc": "docs/release-control/internal/AGENT_VALUES.md",
"control_plane_doc": "docs/release-control/internal/CONTROL_PLANE.md",
"control_plane_schema": "docs/release-control/control_plane.schema.json",
"active_profile_id": "v6",
"active_target_id": "v6-product-lane-expansion",
"legacy_release_lines": [
{
"version_prefix": "5.1.",
"prerelease_branch": "main",
"stable_branch": "main"
},
{
"version_prefix": "6.3.2",
"prerelease_branch": "release/v6.3.2",
"stable_branch": "release/v6.3.2"
},
{
"version_prefix": "6.4.3",
"prerelease_branch": "release/v6.4",
"stable_branch": "release/v6.4"
},
{
"version_prefix": "6.5.",
"prerelease_branch": "release/v6.5",
"stable_branch": "release/v6.5"
}
],
"profiles": [
{
"id": "v6",
"lifecycle": "active",
"root": "docs/release-control/v6",
"prerelease_branch": "main",
"stable_branch": "main",
"source_of_truth": "docs/release-control/v6/internal/SOURCE_OF_TRUTH.md",
"status": "docs/release-control/v6/internal/status.json",
"status_schema": "docs/release-control/v6/status.schema.json",
"development_protocol": "docs/release-control/v6/internal/CANONICAL_DEVELOPMENT_PROTOCOL.md",
"high_risk_matrix": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"subsystems_dir": "docs/release-control/v6/internal/subsystems",
"registry": "docs/release-control/v6/internal/subsystems/registry.json",
"registry_schema": "docs/release-control/v6/internal/subsystems/registry.schema.json",
"subsystem_contract_template": "docs/release-control/v6/internal/SUBSYSTEM_CONTRACT_TEMPLATE.md"
}
],
"targets": [
{
"id": "v6-rc-cut",
"profile_id": "v6",
"kind": "release",
"status": "completed",
"summary": "Hold Pulse v6 on the governed prerelease-cut target until RC publication is explicitly judged ready, while continuing to clear prerelease blockers, prove migration safety, and exercise the pre-RC high-risk gates.",
"completion_rule": "rc_ready"
},
{
"id": "v6-rc-stabilization",
"profile_id": "v6",
"kind": "stabilization",
"status": "completed",
"summary": "Once a real governed RC exists, keep Pulse v6 simple, accurate, and cleanly readable around that proven monitoring-first floor while broader control-plane expansion stays out of the default target until it is proven.",
"completion_rule": "manual",
"proof_scope": "none"
},
{
"id": "v6-ga-promotion",
"profile_id": "v6",
"kind": "release",
"status": "completed",
"summary": "Pulse v6 GA and the initial 6.0.x patch line shipped from the governed v6 release branch; after the v6 public cutover, main is the canonical latest-and-greatest branch for active development and stable release preparation.",
"completion_rule": "manual",
"proof_scope": "none"
},
{
"id": "v6-product-lane-expansion",
"profile_id": "v6",
"kind": "feature",
"status": "active",
"summary": "Post-GA active development runs on main and promotes proactive Pulse Intelligence, policy-aware data governance, resource-change intelligence, action-governance, fleet-governance, agent-operable infrastructure onboarding, continuous discovery reconciliation, and agent-ready operations contract proof after the monitoring-first v6 floor; Patrol is the detection and investigation engine, Assistant is the contextual explanation, approval, and governed action surface, and agent-ready proof is API/CLI-first with MCP only as an adapter over canonical contracts.",
"completion_rule": "manual",
"proof_scope": "none"
}
]
}