Skip to content

Release 1.1.5#18

Merged
jphan32 merged 12 commits into
mainfrom
dev
Jun 24, 2026
Merged

Release 1.1.5#18
jphan32 merged 12 commits into
mainfrom
dev

Conversation

@jphan32

@jphan32 jphan32 commented Jun 24, 2026

Copy link
Copy Markdown
Member

Release 1.1.5

Obsidian plugin-reviewer compliance. No user-visible behavior change.

Highlights

Changed

  • Source aligned with Obsidian plugin guidelines: setCssStyles/setCssProps over direct .style, activeDocument/activeWindow, .instanceOf() checks, window-scoped requestAnimationFrame, auto-bound arrow-function handlers.
  • Full-screen table styling context via .markdown-rendered on the scroll container (dropped partially-supported display: contents).
  • esbuild externalizes Node builtins via node:module (removed the builtin-modules dependency).

Internal — recurrence prevention

  • Added eslint-plugin-obsidianmd (the reviewer's own ruleset) with a type-aware flat config; npm run lint gates CI and release.
  • Release now publishes build-provenance attestations for main.js and styles.css.

Pre-merge checklist

  • manifest.json version = 1.1.5
  • versions.json has "1.1.5": "1.0.0"
  • CHANGELOG.md has a dated ## [1.1.5] - 2026-06-24 section
  • npm run lint + npm run build + node --check main.js + node scripts/validate.mjs pass
  • E2E + 22-check headless smoke pass; npm audit clean
  • CI green on this PR
  • Code-owner approval

After merge (automatic)

On merge into main, the Release workflow tags 1.1.5, attests provenance, and publishes the release with main.js / manifest.json / styles.css. Verify with gh attestation verify main.js --repo Post-Math/Lookout.

Maintainer follow-up:

  • Verify the release + assets + attestation appeared under Releases.
  • Back-merge main into dev (chore/sync-dev-with-main).

🤖 Generated with Claude Code

jphan32 and others added 12 commits June 23, 2026 22:53
Reconcile dev with main after PR #12 (Release 1.1.3). No file changes — trees
are identical.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
chore: back-merge main into dev (sync after 1.1.3 release)
Adopt the official obsidian-sample-plugin toolchain: author in TypeScript
(src/main.ts) and bundle to main.js with esbuild.

- main.js is now build output (gitignored, rebuilt in CI, attached to
  releases); never edited directly. esbuild emits it to the repo root
  (no dist/), since Obsidian loads main.js from the plugin folder root.
- tsc --noEmit type-checks against the real obsidian types (strict, with
  strictPropertyInitialization off because fields init in _build()).
- Follow Obsidian code guidelines: build icon SVGs via createElementNS
  instead of innerHTML; teardown/cleanup unchanged.
- styles.css: drop the remaining !important (win on selector specificity)
  and harden the .mermaid host stamping via closest('.mermaid').
- CI/release: npm ci -> npm run build -> node --check -> validate.mjs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- README.md is now user-facing (features, install, usage, keyboard) with
  example-image placeholders under docs/images/.
- Add docs/DEVELOPMENT.md: TS+esbuild setup, local watch-build loop, the
  CI gate, Obsidian code guidelines, and an architecture overview.
- Add CLAUDE.md project guidance; update CONTRIBUTING.md to the new
  toolchain and record the changes in CHANGELOG.md (Unreleased).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The full-screen table is cloned into document.body, outside the note's
`.markdown-rendered` context, so it lost the theme's table styling (cell
borders, padding, header background) and looked unstyled. Re-wrap the clone
in a `.markdown-rendered` container so it inherits the same styling as the
inline view; `display: contents` on that wrapper keeps the centering/scroll
layout on the table itself.

Developed via E2E: add tests/e2e (`npm run test:e2e`), which drives the
bundled plugin under a minimal obsidian stub in headless Chromium, opens a
table full screen, and asserts its cell styling + layout match the inline
table. Documented in docs/DEVELOPMENT.md; run locally (no browser in CI).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Screenshots will be added later. Drop the placeholder image references and
the docs/images/ placeholders until real screenshots are captured.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bump version across manifest.json, versions.json and package.json, and move
the Unreleased notes into a dated 1.1.4 section.

Highlights: full-screen table styling fix; migration to TypeScript + esbuild;
removal of the remaining !important; E2E test for the table full-screen view.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…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>
Release 1.1.5 — Obsidian reviewer compliance + lint gate & provenance
@jphan32 jphan32 merged commit bb93778 into main Jun 24, 2026
2 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