Conversation
…let them through Two findings from the plugin review, plus the reason our own gate missed both. - `el()` builds elements with Obsidian's `createEl` helper instead of `document.createElement` (`obsidianmd/prefer-create-el`). The free function, not `Node.createEl` — the latter appends to the node it is called on, and `el()` must return something detached. - The inert footnote marker's dotted underline uses the `text-decoration-line` / `text-decoration-style` longhands. Obsidian's CSS check flags the multi-value `text-decoration` shorthand as only partially supported at our `minAppVersion`. Why CI was green while both stood: - `eslint-plugin-obsidianmd` was pinned at 0.3.0, which does not carry the `prefer-create-el` rule the reviewer ran. Bumped to 0.4.1, which reproduces the finding exactly. - That rule reports at *warning* severity, and `eslint` exits 0 on warnings, so even on 0.4.1 the gate would have passed. `npm run lint` now runs with `--max-warnings=0`. Verified the hardened gate actually bites: reverting `el()` to `activeDocument.createElement` fails `npm run lint`. The e2e bootstrap gained a `createEl`/`Node.prototype.createEl` stub written to the real signature — the second argument is a class string or a DomElementInfo — rather than shaped to whatever the bundle happens to call. A stub fitted to the implementation is how a green suite hid a broken feature earlier in this release. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
chore: back-merge 1.2.0 (main → dev)
fix: resolve Obsidian plugin-review findings (1.2.1)
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.
Releases 1.2.1. Merging this pushes the bare
1.2.1tag and publishes the GitHub release with attestedmain.js/manifest.json/styles.css.Compliance only — no change in behaviour from 1.2.0.
Fixed
Two warnings raised by Obsidian's plugin review (PR #34):
createElhelper instead ofdocument.createElement(obsidianmd/prefer-create-el). The free function, notNode.createEl— the latter appends to the node it is called on, and the helper has to return a detached element.text-decoration-line/text-decoration-stylelonghands. Obsidian's CSS check flags the multi-valuetext-decorationshorthand as only partially supported at this plugin'sminAppVersion.Internal — recurrence prevention
Both findings existed as rules the local gate was supposed to enforce. It could not have caught either:
eslint-plugin-obsidianmdwas pinned at 0.3.0, which does not carryprefer-create-el— the gate was checking a strictly smaller rule set than the review it exists to pre-empt. Now 0.4.1, which reproduces the finding exactly.eslintexits 0 on warnings, so even on 0.4.1 the gate would have passed.npm run lintnow runs with--max-warnings=0.Verified by reverting the fix: the hardened gate fails rather than warning.
The e2e bootstrap gained a
createEl/Node.prototype.createElstub written to the real signature rather than shaped to what the bundle happens to call.Verification
minAppVersionstays 1.6.6. Users below it remain on 1.1.7 viaversions.json.