From ff49b9b32815cd9015a80d048ed853af43507276 Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Wed, 20 May 2026 11:19:07 +0100 Subject: [PATCH] ci(abi-drift): expand allowlist 56 -> 66 (Refs standards#92 Phase 2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-surveyed all 81 paired cartridges against the freshly-merged iseriser binary (#20 GADT-skip emitter, #21 runtogether candidate, #22 terminal-`false` switch-arm tolerance). Net change: + 11 newly clean — unblocked by the three iseriser fixes chapeliser-mcp, cloud-mcp, comms-mcp, container-mcp, git-mcp, gitlab-api-mcp, ml-mcp, mongodb-mcp, queues-mcp, research-mcp, vordr-mcp - 1 newly drifting — browser-mcp now flagged Idris2 `BrowserAction.Type` (Zig candidate `type`) vs Zig `type_text`; cartridge-side fix, not a verifier defect. Filed as drift outside Class B/C/D taxonomy; out of scope here. Remaining 15 carry real drift across Classes B/C/D — see standards#92 plus standards#150-155 (Class C: missing Zig enum declarations) and standards#156 (Class D: abbreviation / acronym-boundary, just filed). Class P (verifier parser limit) and Class E (malformed Idris2 source) are now empty: * iseriser#22 closed Class P (5 cartridges: bsp / container / dap / lsp / vault — container-mcp landed in the allowlist; the other 4 are still drifting on separate per-cartridge issues that are no longer parser limits). * iseriser#20 closed Class E (vordr-mcp); the cartridge's manifest now emits cleanly (no enums — its only ADT `IntegrityState` has no `stateToInt` mapping, intentionally) and abi-verify is clean. Comment block updated to reflect post-iseriser-fix taxonomy + survey date so future re-surveys have an audit trail. Refs hyperpolymath/standards#92, hyperpolymath/standards#89, hyperpolymath/iseriser#20, hyperpolymath/iseriser#21, hyperpolymath/iseriser#22. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/abi-drift.yml | 39 ++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/.github/workflows/abi-drift.yml b/.github/workflows/abi-drift.yml index 04df1e8..f5317ce 100644 --- a/.github/workflows/abi-drift.yml +++ b/.github/workflows/abi-drift.yml @@ -70,15 +70,24 @@ jobs: - name: Resolve cartridge allowlist id: discover - # 80 cartridges in the tree carry a paired Safe*.idr + *_ffi.zig. - # 56 are audited green against the Phase 1b emitter + Phase 1 - # verifier (re-run 2026-05-20 with current `main` iseriser binary; - # earlier 16-cartridge survey was contaminated by a stale local - # build pre-iseriser#15). 18 carry real drift (Class B name-norm, - # Class C missing-enum-in-Zig, Class D abbreviation drift — see - # standards#92 + sub-issues iseriser#18 / standards#150-155 / - # standards#TBD-class-D). 5 hit a verifier parser limit - # (iseriser#19). 1 has a malformed Idris2 source (boj-server#111). + # 81 cartridges in the tree carry a paired Safe*.idr + *_ffi.zig. + # 66 are audited green against the Phase 1b emitter + Phase 1 + # verifier (re-run 2026-05-20 after iseriser#20 / #21 / #22 merged: + # GADT-skip in the emitter, runtogether candidate for multi-cap + # acronyms, and terminal `false` switch-arm tolerance in the + # verifier). Versus the previous 56-cartridge allowlist this: + # * ADDS 11 cartridges that the three iseriser fixes unblocked + # (chapeliser, cloud, comms, container, git, gitlab-api, ml, + # mongodb, queues, research, vordr) + # * REMOVES browser-mcp — newly-detected genuine drift + # (`BrowserAction.Type` ↔ Zig `type_text`; cartridge-side + # fix, not a verifier defect) + # 15 cartridges carry real drift across Classes B/C/D — see + # standards#92 plus open sub-issues standards#150-155 (Class C) + # and standards#156 (Class D). Class P (verifier parser limit) + # and Class E (malformed Idris2 source) are now empty: iseriser#22 + # closed Class P (5 cartridges) and the vordr-mcp Class E case + # was closed via iseriser#20 + the cartridge's clean re-survey. run: | set -euo pipefail { @@ -88,10 +97,13 @@ jobs: echo 'agent-mcp' echo 'airtable-mcp' echo 'arango-mcp' - echo 'browser-mcp' echo 'buildkite-mcp' + echo 'chapeliser-mcp' echo 'clickhouse-mcp' + echo 'cloud-mcp' echo 'cloudflare-mcp' + echo 'comms-mcp' + echo 'container-mcp' echo 'crates-mcp' echo 'discord-mcp' echo 'dns-shield-mcp' @@ -100,8 +112,10 @@ jobs: echo 'feedback-mcp' echo 'fleet-mcp' echo 'fly-mcp' + echo 'git-mcp' echo 'github-actions-mcp' echo 'github-api-mcp' + echo 'gitlab-api-mcp' echo 'google-docs-mcp' echo 'google-sheets-mcp' echo 'grafana-mcp' @@ -114,6 +128,8 @@ jobs: echo 'linear-mcp' echo 'local-coord-mcp' echo 'matrix-mcp' + echo 'ml-mcp' + echo 'mongodb-mcp' echo 'neo4j-mcp' echo 'neon-mcp' echo 'nesy-mcp' @@ -127,8 +143,10 @@ jobs: echo 'prometheus-mcp' echo 'proof-mcp' echo 'pypi-mcp' + echo 'queues-mcp' echo 'railway-mcp' echo 'render-mcp' + echo 'research-mcp' echo 'rokur-mcp' echo 'secrets-mcp' echo 'sentry-mcp' @@ -138,6 +156,7 @@ jobs: echo 'telegram-mcp' echo 'todoist-mcp' echo 'turso-mcp' + echo 'vordr-mcp' echo 'zotero-mcp' echo 'EOF' } >> "$GITHUB_OUTPUT"