Skip to main content
← Back to list
01Issue
BugShippedSwamp CLIPublic
Assigneesskunk-ape

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 --json and non-TTY runs. No existing CI invocation changes behaviour.
  • The acceptedWarnings record that #3015 added stays: whenever warnings are waived, by --yes or by --accept-warnings, the log summary prints "Accepted N warnings" with one line per warning and the --json completed document carries the record. Making waivers visible is the part to keep.
  • --accept-warnings remains accepted as an optional alias so nobody who adapted today is broken twice. It is documented as optional and equivalent to --yes for the warnings prompt.
  • Interactive behaviour unchanged: two prompts, two answers.

Acceptance

  • push --dry-run --json --yes on an extension with the adversarial-review warning: exit 0, acceptedWarnings present.
  • push --dry-run --yes with stdin not a TTY: exit 0, summary lists the accepted warnings.
  • push --dry-run --json with neither flag: the pre-3015 behaviour.
  • push --dry-run --accept-warnings: same result as --yes for the warnings gate.
  • Safety and review-rule errors still fail regardless of flags.
  • The gate tests in src/cli/commands/extension_push_test.ts updated 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.md from PR #2833 to describe the restored behaviour and the optional alias.
  • Changelog entry naming the two releases and the reason.
  • #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-ignore comments for site-scoped rules; a sidecar review file beside the manifest for extension-scoped findings); that is where any future tightening of --yes would be decided, with a deprecation window.
02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 7 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/5/2026, 11:22:21 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
skunk-ape assigned skunk-ape10/5/2026, 10:00:12 PM

Sign in to post a ripple.