Commit graph

  • fc6aeb9f42 release: 0.4.3 — plugin review fixes master 0.4.3 liyachen 2026-07-18 21:31:16 -0400
  • d1ddf50f94 fix: address plugin review errors (await revealLeaf, replace inline styles with CSS class) liyachen 2026-07-18 21:31:16 -0400
  • 5f98c8dcc3 fix: remove 'Obsidian' from manifest description per plugin guidelines liyachen 2026-07-18 19:10:41 -0400
  • ae46c553e9 docs: remove internal pre-release audit from public repo liyachen 2026-07-18 18:42:29 -0400
  • deaa5a29ab release: 0.4.2 — pre-submission audit fixes 0.4.2 liyachen 2026-07-18 18:35:42 -0400
  • 6abf716e96 release: 0.4.2 (pre-submission audit fixes) liyachen 2026-07-18 18:16:18 -0400
  • 074ecf9bc9 fix: close trailing-dot bypass in private-host check liyachen 2026-07-18 18:15:20 -0400
  • 99f8435e41 fix: handle client aborts during request body read liyachen 2026-07-18 18:09:47 -0400
  • fbcbbb0701 fix: survive server restart races and surface listen failures liyachen 2026-07-18 18:07:09 -0400
  • 596c8f87c9 fix: restart server when port setting changes liyachen 2026-07-18 18:05:46 -0400
  • bd47b6250a test: lock null title never renders '# undefined' liyachen 2026-07-18 18:05:27 -0400
  • 1077a282e1 fix: recognize YouTube Shorts and Live URLs as the same video liyachen 2026-07-18 18:04:54 -0400
  • af8427dfa5 fix: harden frontmatter and body interpolation against injection liyachen 2026-07-18 18:03:23 -0400
  • 6427fbafde fix: reject private/loopback thumbnail hosts liyachen 2026-07-18 17:58:31 -0400
  • 99ed675a1a fix: serialize clip handling to prevent concurrent-clip races liyachen 2026-07-18 17:54:40 -0400
  • 6f8c35e75e fix: match notes via metadataCache so Properties edits don't orphan them liyachen 2026-07-18 17:51:40 -0400
  • 25b0f5b029 fix: slice Buffer pool view before writing image binaries liyachen 2026-07-18 17:47:34 -0400
  • 362cddf39d fix: strip Obsidian-reserved chars [ ] # ^ from filenames liyachen 2026-07-18 17:45:01 -0400
  • 7f5d9f15cc fix: preserve user-added headings during clip merge liyachen 2026-07-18 17:44:04 -0400
  • 0a0eeaf066 docs: pre-release audit findings (18 issues, scoped fix plan) liyachen 2026-07-18 17:18:25 -0400
  • 47ec3d5956 fix: replace hardcoded colors with Obsidian CSS variables for theme compatibility liyachen 2026-07-18 16:45:28 -0400
  • b42b5722e6 release: 0.4.1 (security hardening for the local /clip endpoint) 0.4.1 liyachen 2026-07-18 14:49:29 -0400
  • 235aff9358 docs: document the unauthenticated-by-design local endpoint and its worst case liyachen 2026-07-18 14:41:01 -0400
  • 2d1719ef24 build: rebuild main.js with cross-review security fixes liyachen 2026-07-18 14:35:25 -0400
  • 171aa6f7c9 test: lock the extension->backend /clip contract against drift liyachen 2026-07-18 14:34:42 -0400
  • e5da359fcb fix: save video frames with a .jpg extension matching their JPEG bytes liyachen 2026-07-18 14:31:09 -0400
  • d56e0a7307 fix(security): restrict outbound cover/thumbnail fetches to http(s) with a size cap liyachen 2026-07-18 14:29:36 -0400
  • 14a72e9f8c feat(security): validate and normalize /clip payloads; stop leaking error internals liyachen 2026-07-18 14:28:21 -0400
  • 06901b74c9 fix: clamp out-of-range persisted port to the default liyachen 2026-07-18 14:26:04 -0400
  • 8118b43a64 fix(security): escape untrusted values written to note frontmatter liyachen 2026-07-18 14:24:55 -0400
  • f3b78d2bdf fix(security): sanitize thumbnail video_id before using it as a vault path liyachen 2026-07-18 14:23:40 -0400
  • 6998b503c7 docs: extension repo renamed to visual-clipper liyachen 2026-07-17 23:00:13 -0400
  • dca3f72040 docs: fix extension repo links to echore/obsidian-visual-clipper liyachen 2026-07-17 22:54:23 -0400
  • f8bb01fbee release: 0.4.0 (publish dates in notes and gallery, Live Preview embed fix, SOP sync) 0.4.0 liyachen 2026-07-17 21:45:08 -0400
  • a7fd3dab55 feat(sops): sync bundled SOPs with rewritten vault versions (2026-07-17) liyachen 2026-07-17 21:35:32 -0400
  • bf55ad1d45 feat(gallery): show video publish date on cards, clip date as fallback liyachen 2026-07-17 18:11:34 -0400
  • abd47cb079 feat(clip): carry published_at into note frontmatter with upsert backfill liyachen 2026-07-17 18:03:36 -0400
  • 9d0a8b9a28 fix(styles): 16:9 embed fix now applies in Live Preview too liyachen 2026-07-17 17:32:19 -0400
  • e0c39433fa release: 0.3.0 (native video library gallery) 0.3.0 liyachen 2026-07-16 23:05:27 -0400
  • f995b1b962 chore: rebuild main.js with gallery view liyachen 2026-07-16 22:31:20 -0400
  • b19e75a408 feat(gallery): ship styles.css (gallery styles + scoped 16:9 embed fix) liyachen 2026-07-16 22:31:01 -0400
  • 76cb9d245f feat(gallery): native video library view with data-driven chips (bilingual) liyachen 2026-07-16 22:29:59 -0400
  • 170dae98ab feat(gallery): pure model layer for the video library view liyachen 2026-07-16 22:27:23 -0400
  • 6b8bcf1031 docs: community plugin market submission checklist and steps liyachen 2026-07-16 21:56:33 -0400
  • 6a37801d89 release: 0.2.0 (base folder, built-in SOPs with customize fork) 0.2.0 liyachen 2026-07-16 21:55:38 -0400
  • e34c2ada38 feat(sop): built-in SOPs on by default with per-mode customize fork liyachen 2026-07-16 21:53:50 -0400
  • 2843a5114a chore: rebuild main.js with base folder and bundled SOPs liyachen 2026-07-16 21:02:10 -0400
  • 534435a4ae feat(settings): bundle bilingual SOPs with one-click install into <base>/SOPs liyachen 2026-07-16 21:01:18 -0400
  • 415b200370 feat(settings): Base folder row drives the four storage paths; restore defaults button liyachen 2026-07-16 20:57:02 -0400
  • 6019e606dd feat(settings): baseFolder with deriveFolders/applyBaseFolder derivation liyachen 2026-07-16 20:44:14 -0400
  • fe72ce5961 chore: rebuild main.js with bilingual bundle liyachen 2026-07-13 20:45:16 -0400
  • 8804978eaf merge: bilingual (en/zh) i18n — language dropdown, dual-language note parsing, bilingual README liyachen 2026-07-13 20:44:37 -0400
  • 62603f40ea docs: describe POST /clip origin handling accurately (CORS headers + loopback bind, not request rejection) liyachen 2026-07-13 20:44:37 -0400
  • 7ba5b816a7 docs: split README into English + Chinese with cross-links liyachen 2026-07-13 20:16:56 -0400
  • 0c1504a0be feat: language setting with en/zh dropdown; settings UI and notices localized liyachen 2026-07-13 20:11:38 -0400
  • 26f9eca492 feat: localize clip-router notices, errors, and screenshot template liyachen 2026-07-13 20:06:48 -0400
  • d901907143 feat: language-neutral SectionKind with dual-language heading parse, current-language write liyachen 2026-07-13 19:59:34 -0400
  • f6796a6763 docs: fix Task 2 mixed-language ordering assertion (overview line also contains 'Motion') liyachen 2026-07-13 19:58:37 -0400
  • d8bf73ac7f feat: i18n module with bundled en/zh locale files liyachen 2026-07-13 19:45:26 -0400
  • 38e02304f7 docs: bilingual i18n implementation plan (6 tasks) liyachen 2026-07-13 19:40:16 -0400
  • 792075ae7f docs: bilingual (en/zh) i18n design spec liyachen 2026-07-13 19:26:03 -0400
  • 58a9762977 fix(ci): use npm install in release workflow — lockfile optional-deps diverge across platforms 0.1.0 liyachen 2026-07-13 00:08:33 -0400
  • bbf22ba486 fix: regenerate package-lock.json to sync with package.json liyachen 2026-07-12 23:31:07 -0400
  • 0c63f43059 feat: release workflow publishes non-draft release with install zip liyachen 2026-07-12 23:17:12 -0400
  • da466765f8 merge: release-prep branch (README/LICENSE/versions/CHANGELOG, release workflow, clip fixes) liyachen 2026-07-12 23:08:28 -0400
  • c6616c98e3 phase3: add release workflow — build and publish GitHub release on tag push liyachen 2026-07-05 12:09:29 -0400
  • 4fcd6377ec phase1: add CHANGELOG for 0.1.0 initial release liyachen 2026-07-05 12:08:16 -0400
  • 35a93d488a phase1: add versions.json for Obsidian version compatibility map liyachen 2026-07-05 12:08:12 -0400
  • 557fa63eae phase1: add MIT LICENSE liyachen 2026-07-05 12:08:06 -0400
  • c38664caa6 phase1: add README for community plugin store listing liyachen 2026-07-05 12:08:01 -0400
  • 585e68a415 fix: config-error copy matches reorganized settings; stale port in BACKLOG liyachen 2026-07-04 22:20:55 -0400
  • 0f7d39e130 fix: first-save notice must not fail the clip response on persistence error liyachen 2026-07-04 22:01:22 -0400
  • de76c302ed feat: first-save location notice, port-conflict copy, manifest description liyachen 2026-07-04 21:57:42 -0400
  • 7ae0066e3e refactor: settings tab matches real data model (4 storage fields + advanced) liyachen 2026-07-04 21:53:37 -0400
  • a2c1a0a404 feat: zero-config Clips/ folder defaults for all four modes liyachen 2026-07-04 21:49:59 -0400
  • 7a54b1f906 feat: migrate default port 27183 -> 17183 (scrcpy collision) liyachen 2026-07-04 21:47:07 -0400
  • 2bb251b056 feat: GET /ping health endpoint for extension self-check liyachen 2026-07-04 21:44:26 -0400
  • 97f05c0c51 fix: disable autoplay + danmaku on Bilibili note embeds liyachen 2026-07-02 20:04:48 -0400
  • dcc44ae4a6 chore: rebuild main.js (drop providerId/processingMode fields) liyachen 2026-06-29 16:08:12 -0400
  • 5b57456cd3 refactor: drop vestigial providerId/processingMode clip-rule fields liyachen 2026-06-29 16:08:11 -0400
  • e56f8d5e75 chore: rebuild main.js (remove AI frame-select, providers, watch rules, legacy) liyachen 2026-06-29 15:12:58 -0400
  • 66ba0ea004 refactor: remove AI providers and auto processing; manual-only liyachen 2026-06-29 15:12:38 -0400
  • b2b5633129 refactor: remove watch-folder rules path liyachen 2026-06-29 14:58:56 -0400
  • 15369bb7d0 refactor: remove legacy image_base64 clip format liyachen 2026-06-29 14:54:18 -0400
  • e66a81c76d refactor: remove AI frame selection, manual review only liyachen 2026-06-29 14:50:06 -0400
  • ee7b2de912 chore: rebuild main.js (prettier notes, cover overwrite, frame-select, save-as-is) liyachen 2026-06-28 22:06:00 -0400
  • 60929b67c0 feat: prettier unified note — emoji headings, --- dividers, top overview liyachen 2026-06-28 17:52:59 -0400
  • 8b4b1ed6ba fix: overwrite existing binary instead of throwing (收藏封面 after auto-cover) liyachen 2026-06-28 17:35:21 -0400
  • 7cedd8dbeb feat: save frames as-is when already curated (frames_select >= count) liyachen 2026-06-28 17:22:44 -0400
  • 2d9de82ac9 tweak(frame-select): prompt asks only for still-visible cues, not motion liyachen 2026-06-28 17:03:37 -0400
  • be97e2b11b feat(frame-select): surface AI fallback + push for distinct, graphic-rich frames liyachen 2026-06-28 16:58:58 -0400
  • afb40075c2 fix(frame-select): send auth via Obsidian requestUrl (OpenAI SDK dropped header) liyachen 2026-06-28 16:28:48 -0400
  • 95a77bec4d feat: AI frame selection via a vision model (GLM-4.6V-Flash / Z.ai) liyachen 2026-06-28 16:23:16 -0400
  • 92da9d04dd feat: every video note gets a gallery cover at <video_id>.webp liyachen 2026-06-28 15:25:09 -0400
  • 5ef5664948 fix: disambiguate note filename when two videos collide liyachen 2026-06-28 14:11:53 -0400
  • e66a9f7e72 fix(screenshot): anchor the video note on a video page (any order) liyachen 2026-06-28 13:48:58 -0400
  • 12c9bea15e feat: fold screenshots into the matching video note liyachen 2026-06-28 13:40:44 -0400
  • a1d48c37c5 feat: universal merge — fall back to the page URL as the merge key liyachen 2026-06-28 13:30:04 -0400
  • f0be96ada1 feat(xiaohongshu): merge captures into one note like YouTube/Bilibili liyachen 2026-06-28 13:10:16 -0400
  • 993a20bb78 fix(keyframe): derive platform from URL — Bilibili got a YouTube player liyachen 2026-06-28 13:05:46 -0400