Relationships
#3047 extension push: restore --yes waiving warnings (revert the 20261005.154947.0 flag split), keep the accepted-warnings record, --accept-warnings stays as an optional alias
Opened by skunk-ape · 10/5/2026· Shipped 10/5/2026
Problem
swamp 20261005.154947.0 (PR swamp-club/swamp#2833, Lab #3015) changed what --yes means on swamp extension push: it no longer waives safety and review warnings, and a non-interactive run (--json, or stdin not a terminal) that meets any warning exits non-zero unless --accept-warnings is passed. Nearly every extension published from a clean runner carries at least one warning (the adversarial-review report is never present there), so every external CI publish that tracks the stable channel fails on its next run. Known exposure: @hivemq, @dataverket, @magistr and @dieter published in the last 30 days; jentz publishes from GitHub Actions; swamp-extensions' own publish.yml. No deprecation notice preceded the change.
Decision (Seth, 2026-10-05): the step was too big. The accountability gain is wanted; the breaking flag semantics are not. The longer-term shape is declared acceptances beside the code and the manifest (a redesigned #3021), not a blanket run-time flag.
Expected
--yes(and--force) waive safety and review warnings again, exactly as before 20261005.154947.0, including for--jsonand non-TTY runs. No existing CI invocation changes behaviour.- The
acceptedWarningsrecord that #3015 added stays: whenever warnings are waived, by--yesor by--accept-warnings, the log summary prints "Accepted N warnings" with one line per warning and the--jsoncompleted document carries the record. Making waivers visible is the part to keep. --accept-warningsremains accepted as an optional alias so nobody who adapted today is broken twice. It is documented as optional and equivalent to--yesfor the warnings prompt.- Interactive behaviour unchanged: two prompts, two answers.
Acceptance
push --dry-run --json --yeson an extension with the adversarial-review warning: exit 0,acceptedWarningspresent.push --dry-run --yeswith stdin not a TTY: exit 0, summary lists the accepted warnings.push --dry-run --jsonwith neither flag: the pre-3015 behaviour.push --dry-run --accept-warnings: same result as--yesfor the warnings gate.- Safety and review-rule errors still fail regardless of flags.
- The gate tests in
src/cli/commands/extension_push_test.tsupdated for the restored matrix; renderer tests for the record kept.
Also in this change
- Revert the flag-matrix text in the bundled swamp skill references and
design/primitives/extensions.mdfrom PR #2833 to describe the restored behaviour and the optional alias. - Changelog entry naming the two releases and the reason.
Related
- #3042 (publish.yml passes --accept-warnings) is cancelled by this.
- swamp-uat #528's test for the refusal needs adjusting to the restored behaviour.
- Lab #3026 (manual docs for the flag table) follows this, not #3015.
- #3021 is being redesigned around declared acceptances (inline
swamp-review-ignorecomments for site-scoped rules; a sidecar review file beside the manifest for extension-scoped findings); that is where any future tightening of--yeswould be decided, with a deprecation window.
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.