fix(release): green the publish gate set against porting-sdk main - #82
Open
anthmFS wants to merge 1 commit into
Open
fix(release): green the publish gate set against porting-sdk main#82anthmFS wants to merge 1 commit into
anthmFS wants to merge 1 commit into
Conversation
Publishing is gated on the full run-ci, and publish-release.yml checks
porting-sdk out at a hard `ref: main` — deliberately, so a release can never
ship from an unmerged wave branch (porting-sdk/COORDINATED_PASS.md). So the
release path is judged against porting-sdk MAIN, not the wave6 branch that
test.yml is currently pinned to via PORTING_SDK_REF.
This makes that path green.
GEN-FRESH — revert the generated files to what porting-sdk MAIN's specs
produce. My earlier commit regenerated them against the wave6 specs, which
greened test.yml's copy of the gate but broke the release copy. Only one of the
two can be satisfied while the pin is set, and per COORDINATED_PASS.md the
release path is the one that must hold: publish never builds from a wave.
Verified: `--check` clean against porting-sdk main.
DOC-AUDIT — `get_stats` is a real method on SearchEngine
(signalwire/search/search_engine.py), and `signalwire.search.` is excluded from
the oracle by design ("RAG / vector-search BACKEND (approved py-only)"). Added
to DOC_AUDIT_IGNORE.md under the existing Search-subsystem section, which
already names examples/local_search_agent.py. `router` needed nothing — it
resolves once the oracle knows about ChatGateway.
DOC-SURFACE — documented the public symbols the ai_chat commits added without
docstrings: GatewayRejection.__init__, ChatGateway.__init__/close/check_key,
AIChatError.__init__, AIChatClient.__init__/close, and the ConversationInfo /
ChatResponse / ChatLog dataclasses. Real Args/Returns/Raises, including the
things worth knowing: check_key uses compare_digest so it cannot be walked a
character at a time, ChatLog.messages holds the system prompt and tool traffic
and must not be relayed to a browser, and an omitted gateway secret is
per-process so handles stop verifying across a restart.
Pairs with porting-sdk: the oracle regen (ChatGateway is new surface the
committed oracle predates) and a doc_surface.py fix.
Verified against porting-sdk main: DRIFT, SEMVER-DIFF, GEN-FRESH, DOC-AUDIT,
DOC-SURFACE, LINT, FMT, NO-CHEAT and ~30 other gates all PASS. The only local
reds are TYPECHECK and TEST, both environment-only: 16 mypy findings in
mcp_gateway/search that CI does not report (its 8 files are entirely different)
and the 6 mcp_gateway tests that fail identically on unmodified main. 5940
tests pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pairs with porting-sdk#135 — merge that one first, then this goes green on its own.
Goal: make
v3.3.0publishable. Publishing is gated on the full run-ci, andpublish-release.ymlchecks porting-sdk out at a hardref: main—deliberately, so a release can never ship from an unmerged wave branch (see
porting-sdk/COORDINATED_PASS.md). So the release path is judged against
porting-sdk main, not the wave6 branch
test.ymlis currently pinned to viaPORTING_SDK_REF.GEN-FRESH
Reverts the generated files to what porting-sdk main's specs produce. My earlier
commit (#81) regenerated them against wave6's specs — that greened
test.yml'scopy of the gate but broke the release copy. Only one of the two can be
satisfied while the pin is set, and per COORDINATED_PASS.md the release path
is the one that must hold.
--checkis clean against porting-sdk main.DOC-AUDIT
get_statsis a real method onSearchEngine, andsignalwire.search.isexcluded from the oracle by design ("RAG / vector-search BACKEND (approved
py-only)"). Added to
DOC_AUDIT_IGNORE.mdunder the existing Search-subsystemsection, which already names
examples/local_search_agent.py.routerneeded no change — it resolves as soon as the oracle knows ChatGatewayexists (porting-sdk#135).
DOC-SURFACE
Documented the public symbols the ai_chat commits added without docstrings:
GatewayRejection.__init__,ChatGateway.__init__/close/check_key,AIChatError.__init__,AIChatClient.__init__/close, and theConversationInfo/ChatResponse/ChatLogdataclasses.Real Args/Returns/Raises, including the things a caller actually needs to know:
check_keyusescompare_digestso it can't be walked a character at a time;ChatLog.messagescontains the substituted system prompt and tool traffic andmust not be relayed to a browser verbatim; an omitted gateway
secretisper-process, so handles stop verifying across a restart or a second worker.
Verification
Against porting-sdk main (what publish uses), full
run-ci.sh:PASS — DRIFT, SEMVER-DIFF, GEN-FRESH, DOC-AUDIT, DOC-SURFACE, LINT, FMT,
NO-CHEAT, ROUTE-COLLISION, SPEC-PARITY, REST-COVERAGE, and ~25 more.
Local-only reds, which CI does not see:
mcp_gateway/search, allunused-ignore/truthy-functionthat depend on which optional extras areinstalled. CI's TYPECHECK reported 8 entirely different files, none of these;
removing those
# type: ignorecomments locally would break CI.mcp_gatewayfailures, verified pre-existing by stashing thisbranch and running them on unmodified main, where they fail identically.
5940 tests pass.
After this merges
maingoes green on the release path, then tagv3.3.0(matchingpyproject.toml) and push with--tags. Note the existing localv3.0.3tagis wrong twice over: it disagrees with
pyproject.toml(the publish workflowhard-fails on that check) and it points at
20663a6, which predates all ofthese fixes.
🤖 Generated with Claude Code
https://claude.ai/code/session_015dYktt85Ltj3oK9gG5VBww