Wave 2: wire §C1/§G/§D1 doc-exec, ledger, and packaging gates into run-ci.sh#29
Open
mjerris wants to merge 6 commits into
Open
Wave 2: wire §C1/§G/§D1 doc-exec, ledger, and packaging gates into run-ci.sh#29mjerris wants to merge 6 commits into
mjerris wants to merge 6 commits into
Conversation
Wire the six Wave 2 gates into cpp's run-ci.sh, mirroring how python's
run-ci wires them. All six pass at baseline for cpp:
§C1 SNIPPET-COMPILE 521 documented cpp snippets syntax-check clean
DOC-CLI 187 swaig-test invocations line-detected clean
EXAMPLES-RUN 58 examples skip-with-note (no CMake example-run target)
SNIPPET-RUN self-skips (compiled port; SNIPPET-COMPILE covers it)
§G SUPPRESSION-LEDGER no un-ledgered analyzer suppressions
§D1 PACKAGE-SMOKE real cmake --install artifact builds, installs, and
constructs RestClient from the installed headers/lib
cpp runs gates serially (no defer tier), so all are wired blocking. The CI
workflow (test.yml) invokes run-ci.sh directly, so the wiring flows to CI with
no separate declaration.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
SNIPPET-COMPILE / SNIPPET-RUN / EXAMPLES-RUN dominate run-ci wall time. Re-tag them
tier=nightly so per-PR run-ci skips them, while:
- nightly.yml runs the FULL gate set (SW_CI_TIER=nightly) on a daily cron, with a
skip-if-unchanged guard: a cache marker keyed on the (port, porting-sdk, python)
SHA triple means a no-op nightly costs a cache probe, not the full run;
- test.yml promotes a per-PR run to SW_CI_TIER=nightly when the diff touches
docs/, examples/, or README/*.md — doc changes stay gated at PR time.
Requires porting-sdk#74 (tier=pr|nightly in gate_scheduler.sh) on porting-sdk main:
the old scheduler rejects the tier= arg. Merge #74 first.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PqshDQajCmDHD3xPo4CXMC
…ag (python parity)
Parity with signalwire-python commit 883aa1d.
set_history (Step + Context):
- fluent set_history(mode) validating {keep, default, hide}, throwing
std::invalid_argument on an invalid mode.
- stored as std::optional<std::string>; to_json emits "history" only when set.
gather isolated flag:
- GatherQuestion gains std::optional<bool> isolated (tri-state); to_json emits
"isolated" when it has a value (explicit false IS on the wire), omits when unset.
- GatherInfo gains bool isolated=false (gather-level default); to_json emits
"isolated": true only when truthy.
- Step::set_gather_info gains isolated=false (passed to the GatherInfo default).
- Step::add_gather_question gains std::optional<bool> isolated (per-question override).
Regenerated port_signatures.json + port_surface.json. Added tests covering each
history mode + invalid rejection, question tri-state (None omitted / True / False
emitted), gather-level default (False omitted / True emitted), and override
precedence. DRIFT + SURFACE-DIFF both exit 0; full test suite green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PqshDQajCmDHD3xPo4CXMC
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.
Wave 2 — wire §C1 / §G / §D1 gates into cpp run-ci.sh
Wires the six Wave 2 gates into cpp's
scripts/run-ci.sh, mirroring howsignalwire-python's run-ci wires them. All six pass at baseline for cpp — this
is pure gate-wiring, no source/API/doc changes were needed.
cmake --installartifact builds, installs, and constructsRestClientfrom the installed headers/libcpp runs gates serially (no defer/wave tier), so all six are wired blocking.
The CI workflow (
test.yml) invokesrun-ci.shdirectly, so the wiring flowsto CI with no separate declaration.
Full
bash scripts/run-ci.shpasses end-to-end (CI PASS, exit 0).🤖 Generated with Claude Code