Skip to content

release: 1.2.1 - #35

Merged
jphan32 merged 4 commits into
mainfrom
dev
Jul 28, 2026
Merged

release: 1.2.1#35
jphan32 merged 4 commits into
mainfrom
dev

Conversation

@jphan32

@jphan32 jphan32 commented Jul 28, 2026

Copy link
Copy Markdown
Member

Releases 1.2.1. Merging this pushes the bare 1.2.1 tag and publishes the GitHub release with attested main.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):

  • Elements are created through 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 the helper has to return a detached element.
  • The inert footnote marker's dotted underline is written with the text-decoration-line / text-decoration-style longhands. Obsidian's CSS check flags the multi-value text-decoration shorthand as only partially supported at this plugin's minAppVersion.

Internal — recurrence prevention

Both findings existed as rules the local gate was supposed to enforce. It could not have caught either:

  • eslint-plugin-obsidianmd was pinned at 0.3.0, which does not carry prefer-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.
  • 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 by reverting the fix: the hardened gate fails rather than warning.

The e2e bootstrap gained a createEl / Node.prototype.createEl stub written to the real signature rather than shaped to what the bundle happens to call.

Verification

npm run lint            PASS   (--max-warnings=0, plugin 0.4.1)
npm run build           PASS
node --check main.js    PASS
node scripts/validate.mjs   PASS   (versions.json has 1.2.1 → 1.6.6)
npm run test:e2e        PASS   119 checks (table 106, diagram 13)

minAppVersion stays 1.6.6. Users below it remain on 1.1.7 via versions.json.

jphan32 and others added 4 commits July 28, 2026 21:10
…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)
@jphan32
jphan32 merged commit 62f47dd into main Jul 28, 2026
2 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant