fix(release): green the publish gate set against porting-sdk main - #82
Merged
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.
Contributor
Author
|
Re-running against |
hey-august
pushed a commit
to hey-august/signalwire-python
that referenced
this pull request
Aug 17, 2026
) Add the native messaging resource `client.messages`, generated from the porting-sdk `messages` spec (/api/messaging): - create — send an SMS/MMS message (POST /api/messaging/messages) - update — redact a previously sent message's body (PATCH /api/messaging/messages/{message_id}) This is a BaseResource (create + update only; no list/get/delete), distinct from the singular message *logs* resource reachable via `client.logs.messages`. Files (all generated by scripts/generate_python_rest_types.py): - messages_types_generated.py, messages_resources_generated.py - _client_tree_generated.py wires `client.messages` - tests/unit/rest/messages_generated_test.py — 4 wire tests (create + update, each success + error) over the shared mock Version bumped 3.1.0 -> 3.2.0 (new public minor surface) across pyproject.toml, __init__.py, agent_server.py + CHANGELOG. Depends on porting-sdk feat/messages-canonical (SPEC_NAMES + spec markup + regenerated oracle) — coordinated merge. Claude-Session: https://claude.ai/code/session_01PqshDQajCmDHD3xPo4CXMC Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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.
Coordinated-With: porting-sdk@fix/oracle-ai-chat-main
Pairs with porting-sdk#137 — merge that one first.
Makes
v3.3.0publishable. Three gates, three causes.GEN-FRESH — regenerates the generated files to what porting-sdk main's specs
produce. main currently carries wave6-shaped ones (from #81), which reproduce
differently against main and fail the gate.
DOC-AUDIT —
get_statsis a realSearchEnginemethod, andsignalwire.search.is excluded from the oracle by design ("RAG / vector-searchBACKEND, approved py-only"). Added to DOC_AUDIT_IGNORE.md under the
Search-subsystem section that already names local_search_agent.py.
routerresolves once the oracle knows ChatGateway exists (porting-sdk#137).
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.Notable bits recorded:
check_keyusescompare_digestso it can't be walked acharacter at a time;
ChatLog.messagesholds the system prompt and tool trafficand must not be relayed to a browser; an omitted gateway
secretisper-process, so handles stop verifying across a restart.
Verification
Full run-ci against porting-sdk main: DRIFT, SEMVER-DIFF, GEN-FRESH, DOC-AUDIT,
DOC-SURFACE, LINT, FMT, NO-CHEAT, ROUTE-COLLISION, SPEC-PARITY, REST-COVERAGE
and ~25 others PASS. 5940 tests pass. The 6 mcp_gateway test failures are
pre-existing — verified by stashing this branch and running them on unmodified
main, where they fail identically.
After merge
Delete the pin (
gh variable delete PORTING_SDK_REF), then tagv3.3.0tomatch pyproject.toml and push with
--tags. The stale localv3.0.3tag iswrong twice: it disagrees with pyproject (the publish workflow hard-fails that
check) and points at
20663a6, which predates these fixes.🤖 Generated with Claude Code
https://claude.ai/code/session_015dYktt85Ltj3oK9gG5VBww