Skip to content

P.O.W.E.R. 3.6.0 release notes

P.O.W.E.R. 3.6.0 is a Linux-first architecture and release-truth update over the published v3.5.0 baseline. It does not add a CLI command or MCP tool: the public inventory remains 24 CLI commands and 20 MCP tools.

What changed

  • Atomic search-index synchronization now lives in the dedicated power_framework.core.index_sync module instead of overloading core.searcher. Compatibility exports remain available and regression tests protect the public import surface.
  • The CodeQL cleanup removes duplicated and unused paths while preserving the generation, crash-recovery, maintenance, low-memory, healer, and search contracts.
  • Installation, migration, MCP onboarding, and package metadata documentation were audited against the executable runtime rather than historical setup assumptions.
  • The repository MCP launcher metadata now matches the packaged runtime.
  • The release evidence pipeline is version-scoped to 3.6.0, validates the 3.5.0 -> 3.6.0 upgrade boundary, and uses fresh power36-* receipts so source-bound 3.5.0 evidence cannot silently open the 3.6.0 gate.
  • Synthetic Phase 8 outcome and continuity receipts use the v2 contract and carry the exact release, commit, tree, clean-state, and worktree hash. Final publication rejects receipts not produced from the clean tagged checkout.

Platform boundary

Linux is the supported release platform for v3.6.0. The automated CI, documentation, CodeQL, package, upgrade, and publication jobs currently run on an Ubuntu runner; Ubuntu is the validation environment, not the product name or the full platform boundary.

macOS and Windows are deferred with an unscheduled policy. This release does not run macOS or Windows CI, does not publish upgrade receipts for those platforms, and makes no compatibility, performance, GPU, dense-retrieval, or quality claim for them. Their documentation is informational and is not a supported-platform certification.

Upgrade and rollback

The executable Linux matrix runs on Ubuntu and covers 3.5.0 -> 3.6.0, including interrupted index publication at before_move, after_move, and after_pointer. It must prove source preservation, restart recovery, stale-build cleanup, active-pointer consistency, and no data loss before publication.

The package keeps the existing vault/source formats and public command/tool inventory. If a deployment must roll back, reinstall the immutable v3.5.0 wheel and read back power --version, package metadata, vault coverage, and the active search generation before resuming writes.

Release gates

uv sync --locked --group dev --extra semantic --extra rerank
uv run ruff check src tests scripts benchmarks/power35
uv run ruff format --check src tests scripts benchmarks/power35
uv run mypy src/power_framework
uv run python scripts/check_doc_drift.py
uv run python scripts/complexity_dashboard.py --baseline-revision v3.4.5 --require-budget
uv run mkdocs build --strict
uv run pytest tests -v --cov=src/power_framework --cov-fail-under=70 \
  -W error::ResourceWarning -W error::pytest.PytestUnraisableExceptionWarning
uv run python scripts/verify_upgrade_matrix.py \
  --from-version 3.5.0 --to-version 3.6.0

The tag workflow additionally requires a clean signed v3.6.0 tag, wheel and source-distribution smoke tests outside the checkout, an SPDX SBOM, provenance attestation, source-bound technical Phase 8 receipts, a complete Linux upgrade aggregate from the Ubuntu runner, and GitHub release body/asset readback.

Evidence boundary

Synthetic technical receipts prove release mechanics and continuity, not host-independent retrieval quality. Real-vault and sealed-human evaluation are optional benchmarks: they are not GitHub Secrets and do not block normal Linux publication. When supplied, they may support separate quality claims after their own validation. Historical v3.5.0 assets remain immutable historical evidence and are not relabelled as 3.6.0 results.