Release 1.1.5 — Obsidian reviewer compliance + lint gate & provenance#17
Merged
Conversation
…nance Resolves the Obsidian reviewer's lint/release findings and adds the same linter as a permanent gate so they cannot recur. Source (eslint-plugin-obsidianmd): - Use setCssStyles/setCssProps (HTMLElement + SVGElement) instead of direct `.style.x =` assignment (no-static-styles-assignment). - Use activeDocument/activeWindow instead of document/window, and window.requestAnimationFrame, for popout-window compatibility. - Use node.instanceOf(HTMLElement|SVGElement) for cross-window type checks. - Convert event handlers to auto-bound arrow-function fields (removes manual bind + this-alias; fixes unbound-method/no-this-alias). - Drop unused catch bindings and a redundant querySelectorAll guard. Build/release: - esbuild externalizes Node builtins via node:module `builtinModules`; drop the `builtin-modules` dependency. - Full-screen table styling context comes from `.markdown-rendered` on the scroll container, dropping the partially-supported `display: contents`. - Release attests build provenance for main.js/styles.css (actions/attest-build-provenance). Recurrence prevention: - Add eslint-plugin-obsidianmd with a type-aware flat config (eslint.config.mjs) and `npm run lint`; wire it into the CI and release workflows so guideline violations fail the build instead of surfacing at submission/review. Verified: lint, tsc, build, validate, E2E (table) and a 22-check headless smoke run all pass; npm audit clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Obsidian plugin-reviewer compliance fixes, the eslint-plugin-obsidianmd CI gate, and release build-provenance attestations. No user-visible behavior change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Resolves all items from the Obsidian plugin-reviewer report, and adds the same linter as a permanent gate so they can't recur.
Source —
eslint-plugin-obsidianmd(was: 31 errors / 16 warnings → 0)setCssStyles/setCssPropsinstead of direct.style.x =(works on bothHTMLElementandSVGElement).activeDocument/activeWindowinstead ofdocument/window.window.requestAnimationFrame.node.instanceOf(HTMLElement|SVGElement)for cross-window safety.bind()+const self = this).catchbindings and a redundantquerySelectorAllguard.Build / release
node:modulebuiltinModules; dependency removed.display: contents(partial support warning): removed — the full-screen table now gets its.markdown-renderedstyling context from the scroll container directly.main.jsandstyles.css(actions/attest-build-provenance, withid-token/attestationspermissions).Recurrence prevention (the "재발방지책")
eslint-plugin-obsidianmd— the same ruleset the Obsidian reviewer runs — with a type-aware flat config (eslint.config.mjs) andnpm run lint.npm run lintinto both the CIvalidatejob and the release workflow, so a guideline violation fails the build locally and in CI before it can reach submission/review. Rules that don't apply (e.g.ui/sentence-casefor Korean UI) are disabled in-config with a comment, not ignored ad hoc.Verification
No user-visible behavior change. CHANGELOG updated under Unreleased.
🤖 Generated with Claude Code