diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b0d15af..c6ce62a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,11 +18,16 @@ jobs: matrix: os: [ubuntu-latest, macos-latest, windows-latest] # The full requires-python range on every OS, floor (3.10) to - # free-threaded 3.14 ("3.14t" is uv's key for the cp314t build; the - # whole dep tree ships cp314t wheels for all three OSes — verified - # against PyPI before widening the matrix). + # free-threaded 3.14 ("3.14t" is uv's key for the cp314t build). python: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"] runs-on: ${{ matrix.os }} + # windows + 3.14t is a DOCUMENTED upstream gap, not our code (2026-07-18): + # mcp requires pywin32 on win32, and pywin32==312 ships no cp314t wheel, so + # `uv sync` fails before our suite can even run. Linux/macOS 3.14t legs are + # strict and green. This cell is allowed to fail so the matrix reports + # reality without going red on someone else's wheel gap — and it starts + # passing automatically the day pywin32 publishes cp314t wheels. + continue-on-error: ${{ matrix.os == 'windows-latest' && matrix.python == '3.14t' }} steps: - uses: actions/checkout@v4 - name: Install uv diff --git a/README.md b/README.md index 01d24a9..b8f70d0 100644 --- a/README.md +++ b/README.md @@ -123,7 +123,11 @@ Claude Code and OpenAI Codex setup (both stdio MCP): see [`docs/clients.md`](doc ## Status -**v1.2.0 (pre-release, in review)** — the Development Observatory release: +**v1.2.0 (pre-release, in review)** — the Development Observatory release +(Python 3.10–3.14 incl. free-threaded 3.14t, CI-verified on Linux/macOS/Windows; +one known upstream gap: *Windows* 3.14t cannot install yet because `mcp`'s +`pywin32` dependency ships no cp314t wheel — that CI cell is a documented +allowed-failure until pywin32 catches up): seven new backends extend the digest matrix from profilers to the whole edit→build→verify→measure loop. BuildDigest: `clang_time_trace` (compiler-phase traces, with `[total]` aggregate tagging), `cmake_profile` (configure-step @@ -137,7 +141,6 @@ previous-green comparison proven on real two-run fixtures). RepoState: honest absence, never `0.0`). Zero new tools — every backend rides the same seven; 206 tests. Every fixture in the release was produced by the real tool it mimics — several briefs were corrected by what the artifacts actually contained. -Python 3.10–3.14 including free-threaded 3.14t, Linux/macOS/Windows CI-verified. **v1.1.1** — contract-hardening hotfix (issues #2/#4/#5): registry format collisions are detected on the normalized key (a case-variant format can no