Conversation
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
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.
Release 1.1.5
Obsidian plugin-reviewer compliance. No user-visible behavior change.
Highlights
Changed
setCssStyles/setCssPropsover direct.style,activeDocument/activeWindow,.instanceOf()checks, window-scopedrequestAnimationFrame, auto-bound arrow-function handlers..markdown-renderedon the scroll container (dropped partially-supporteddisplay: contents).node:module(removed thebuiltin-modulesdependency).Internal — recurrence prevention
eslint-plugin-obsidianmd(the reviewer's own ruleset) with a type-aware flat config;npm run lintgates CI and release.main.jsandstyles.css.Pre-merge checklist
manifest.jsonversion= 1.1.5versions.jsonhas"1.1.5": "1.0.0"CHANGELOG.mdhas a dated## [1.1.5] - 2026-06-24sectionnpm run lint+npm run build+node --check main.js+node scripts/validate.mjspassnpm auditcleanAfter merge (automatic)
On merge into
main, the Release workflow tags1.1.5, attests provenance, and publishes the release withmain.js/manifest.json/styles.css. Verify withgh attestation verify main.js --repo Post-Math/Lookout.Maintainer follow-up:
mainintodev(chore/sync-dev-with-main).🤖 Generated with Claude Code