Relationships
↔ sibling #3153#3846 invalid-acceptance refuses an apostrophe in a swamp-quality-ignore reason and leaves the finding unresolved
Opened by reset · 10/23/2026· Shipped 10/26/2026
On 20261020.024627.0-sha.26dc044f (macOS 27), the comment // swamp-quality-ignore deno-command: butler is itch.io's documented upload tool makes swamp extension quality fail with invalid-acceptance ... the reason may not contain a quote character, and the deno-command warning the comment was meant to accept is reported as unresolved beside it. The apostrophe in itch.io's is the refused character.
Source: src/domain/extensions/extension_acceptances.ts:340, if (/["']/.test(reason)) return "the reason may not contain a quote character", with the comment that a quote "could make a string's text read as a comment". The publishing reference states the rule ("in source files may not contain a quote character, Deno.Command(` or a base64 run"), so this is about the rule itself and the error, not missing documentation.
Expected: an apostrophe in an English reason is accepted, or the error names the three refused characters and shows the corrected comment in its remediation.
Actual: the reason is refused with "a quote character", the user has to guess that ' counts, and the finding stays open until the reason is reworded.
Steps to reproduce:
- In an extension that has a
deno-commandfinding, put// swamp-quality-ignore deno-command: the tool's documented upload pathon the finding's line. swamp extension quality <manifest>:invalid-acceptancenaming the comment, plus the originaldeno-commandwarning.
Prior: #3153 (open) is the sibling: an apostrophe in an earlier comment on the same line makes the directive silently ignored, and its notes say the quote scan needs real tokenisation. The same tokeniser would let a reason carry an apostrophe safely.
Suggestion: allow ' in reasons once directives are found by tokenising the line (linked to #3153), or until then name ", ' and the backtick in the error and append the reworded comment as the remediation.
Shipped
Click a lifecycle step above to view its details.
skunk-ape commented 10/26/2026, 8:08:38 PM
Thanks @reset for reporting this! We shipped: Read swamp-quality-ignore directives in source files from Babel comment tokens instead of scanning lines for quote characters. A quote in a reason becomes harmless and is accepted (3846); a directive after an earlier comment holding an apostrophe is found (3153); keyword text in a string, template or regex literal is never a directive (the #3107 regex trap). A source file that does not parse accepts no directives and reports each as invalid-acceptance saying the file does not parse. The safety analyzer's long-line discount uses the same token-derived spans, and commentSites decides source sites from its one parse. Markdown parsing is unchanged; the rubric scorer is untouched.. The fix has been merged and a release is on its way. We appreciate your contribution to swamp.
Sign in to post a ripple.