Skip to content

Release 1.1.5 — Obsidian reviewer compliance + lint gate & provenance#17

Merged
jphan32 merged 2 commits into
devfrom
chore/obsidian-lint-compliance
Jun 24, 2026
Merged

Release 1.1.5 — Obsidian reviewer compliance + lint gate & provenance#17
jphan32 merged 2 commits into
devfrom
chore/obsidian-lint-compliance

Conversation

@jphan32

@jphan32 jphan32 commented Jun 24, 2026

Copy link
Copy Markdown
Member

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)

  • no-static-styles-assignment: setCssStyles/setCssProps instead of direct .style.x = (works on both HTMLElement and SVGElement).
  • prefer-active-doc: activeDocument/activeWindow instead of document/window.
  • prefer-window-timers: window.requestAnimationFrame.
  • prefer-instanceof: node.instanceOf(HTMLElement|SVGElement) for cross-window safety.
  • unbound-method / no-this-alias: event handlers are now auto-bound arrow-function fields (removed manual bind() + const self = this).
  • no-unused-vars / no-deprecated: dropped unused catch bindings and a redundant querySelectorAll guard.

Build / release

  • builtin-modules: replaced with Node's node:module builtinModules; dependency removed.
  • CSS display: contents (partial support warning): removed — the full-screen table now gets its .markdown-rendered styling context from the scroll container directly.
  • Artifact attestations: the release workflow now attests build provenance for main.js and styles.css (actions/attest-build-provenance, with id-token/attestations permissions).

Recurrence prevention (the "재발방지책")

  • Added eslint-plugin-obsidianmd — the same ruleset the Obsidian reviewer runs — with a type-aware flat config (eslint.config.mjs) and npm run lint.
  • Wired npm run lint into both the CI validate job 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-case for Korean UI) are disabled in-config with a comment, not ignored ad hoc.

Verification

npm run lint ✓   tsc ✓   build ✓   node --check ✓   validate ✓
E2E (table) ✓   headless smoke 22/22 ✓   npm audit: 0 vulnerabilities

No user-visible behavior change. CHANGELOG updated under Unreleased.

🤖 Generated with Claude Code

jphan32 and others added 2 commits June 24, 2026 10:53
…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>
@jphan32 jphan32 changed the title fix: resolve Obsidian reviewer findings + add lint gate & provenance Release 1.1.5 — Obsidian reviewer compliance + lint gate & provenance Jun 24, 2026
@jphan32 jphan32 merged commit 33715c3 into dev Jun 24, 2026
1 check passed
@jphan32 jphan32 deleted the chore/obsidian-lint-compliance branch June 24, 2026 02:53
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