Commit graph

117 commits

Author SHA1 Message Date
Richard McCorkle
7fdf2e102c chore: bump to 1.4.1
Patch release: fix the mobile example-template viewer, which 1.4.0
shipped collapsed to ~2 lines. flex-shrink:0 stops the mobile modal's
flex column from squeezing the content box below its set height.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 17:53:16 +02:00
Richard McCorkle
b4d6e01c45 docs: add clickable poster image for the demo video in README
Extract a poster frame (the TubeSage settings panel) and use it as a
clickable thumbnail linking to the walkthrough video. Absolute
raw.githubusercontent.com URL so the image also renders on the
Obsidian community plugins page, which sanitizes inline video.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 17:49:20 +02:00
Richard McCorkle
26bdd9a217 docs: compress TubeSage.mp4 to ~7.5MB for inline GitHub playback
Two-pass H.264 re-encode at ~550 kbps, frame size unchanged
(860x720, 114s). The previous 22MB file exceeded GitHub's ~10MB
inline-video limit ("can't show files this big"); 7.5MB plays
inline in the blob view.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 17:46:41 +02:00
Richard McCorkle
b4f5c29b82 fix: stop flexbox squeezing the mobile template viewer
The 1.4.0 mobile fix set height:50vh on the template content box, but
the mobile modal content is a flex column and the box (default
flex-shrink:1) was squeezed back down to ~2 lines by its siblings.
Add flex-shrink:0 so the set height actually holds.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 16:53:36 +02:00
Richard McCorkle
986e8e961d chore: stop tracking docs/superpowers workflow docs
The superpowers specs/plans are internal workflow scaffolding, not
distributable project docs. Untrack them and add docs/superpowers/
to .gitignore. Files are kept locally. This also clears a GitHub
secret-scanning false positive: a spec quoted YouTube's public
InnerTube key, which matches the AIzaSy* Google-API-key pattern.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 16:32:29 +02:00
Richard McCorkle
f72baf6e60 docs: clarify clipboard access is write-only in README
State explicitly that TubeSage only writes to the clipboard (Obsidian
-> clipboard, via Copy template) and never reads it, so it cannot
expose content copied from outside Obsidian.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 15:23:56 +02:00
Richard McCorkle
261554505c chore: bump to 1.4.0
Highlights since 1.3.3:
- Transcript extraction reworked onto the YouTube iOS InnerTube
  player API; the four broken free local fallbacks removed.
- OpenRouter model-list refresh with a vendor-grouped dropdown.
- Service-URL info icons for ScrapeCreators, Supadata, OpenRouter.
- Desktop processing no longer leaves a blank popup.
- Mobile example-template viewer enlarged so content is visible.
- UI primitives migrated to native Obsidian components (Tier A).
- README network/base64 disclosures completed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 15:14:02 +02:00
Richard McCorkle
503d50bcb2 docs: note the bundled-library base64 calls in README
Static analysis flags atob()/btoa() calls in the bundle. Disclose in
Privacy & Security that they all originate in bundled libraries and
are routine base64 operations, not obfuscation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 15:09:48 +02:00
Richard McCorkle
600caee96f docs: disclose ScrapeCreators and Supadata in README network section
The Privacy & Security > Network requests list omitted the two
optional paid transcript APIs the plugin contacts when a key is
configured. Add them so the disclosure is complete.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 15:06:48 +02:00
Richard McCorkle
8eb95a25ce refactor: remove broken watch-page/ANDROID/MWEB/WEB transcript methods
Delete the four obsolete local transcript methods, their six helper
methods, the YouTubeConfig interface, and the now-unused statics. The
iOS player method added earlier is the sole local fallback.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 14:28:30 +02:00
Richard McCorkle
314a737437 feat: route transcript fallback through the iOS player method
fetchTranscript now uses a three-rung ladder (ScrapeCreators, iOS
player, Supadata). getVideoMetadata is sourced from the iOS player
response instead of the watch-page HTML scrape.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 14:20:40 +02:00
Richard McCorkle
45b2baa4ba feat: add iOS InnerTube player transcript method
Add fetchIosPlayerData and fetchViaIosPlayer, built from the YouTube
iOS player approach. Not yet wired into the fallback ladder.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 14:13:58 +02:00
Richard McCorkle
33eeaedb8f docs: implementation plan for iOS-player transcript fallback
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 14:11:52 +02:00
Richard McCorkle
a9e54fc0bd docs: design spec for iOS-player transcript fallback replacement
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 14:01:58 +02:00
Richard McCorkle
4dc4d8589f fix: enlarge mobile example-template viewer so content is visible
The template-viewer content box used only max-height, so on mobile it
collapsed to a blank single line. Add a mobile size override for the
modal and a definite height for the content container inside the
existing max-width:768px media query. Desktop is unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 13:48:48 +02:00
Richard McCorkle
80df0c1b33 docs: implementation plan for mobile template-viewer height fix
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 13:47:33 +02:00
Richard McCorkle
b7db064d48 docs: design spec for mobile template-viewer height fix
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 13:33:44 +02:00
Richard McCorkle
04e1190e7f Merge info-openrouter-spinner: service info icons, OpenRouter refresh, desktop spinner fix
- Info (i) icons with service URLs on the ScrapeCreators, Supadata,
  and OpenRouter settings.
- fetchOpenRouterModels: refresh the full OpenRouter model list from
  the public API, vendor-grouped dropdown, auto-stored token limits.
- Desktop processing no longer shows a blank popup: the modal closes
  on desktop (status-bar spinner only); mobile keeps the in-modal spinner.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 13:27:03 +02:00
Richard McCorkle
17dec2f218 fix(ui): close create-note modal on desktop during processing (no blank popup)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 12:23:40 +02:00
Richard McCorkle
f74915e08d feat(llm): add OpenRouter model-list refresh with vendor-grouped dropdown
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 12:18:43 +02:00
Richard McCorkle
74e7d81695 feat(settings): add service-URL info icons for ScrapeCreators, Supadata, OpenRouter 2026-05-18 12:14:07 +02:00
Richard McCorkle
68c7aa7472 docs: implementation plan for info icons, OpenRouter refresh, desktop spinner fix
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 12:12:02 +02:00
Richard McCorkle
d7d2d06198 docs: design spec for service info icons, OpenRouter refresh, desktop spinner fix
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 12:07:53 +02:00
Richard McCorkle
0b6d8efcb9 Merge tier-a-native: migrate UI primitives to native Obsidian components
Tier A of the UI native-component audit, no intended look-and-feel change:
- info icon and icon buttons -> setIcon / ExtraButtonComponent
- text buttons -> ButtonComponent (Process uses setCta)
- create-note modal URL/title inputs -> TextComponent, video-count
  select -> DropdownComponent

Deferred: MarkdownRenderer for README/license modals, FuzzySuggestModal
for the pickers (both visibly change look).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 11:01:29 +02:00
Richard McCorkle
229d375d42 refactor(ui): convert create-note modal inputs to native components
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 10:47:48 +02:00
Richard McCorkle
b6f240c07a refactor(ui): convert text buttons to ButtonComponent
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 10:41:58 +02:00
Richard McCorkle
0d80f094de refactor(ui): convert icon buttons to ExtraButtonComponent
Replace three hand-rolled <button> + createElementNS SVG + mouseenter/mouseleave
hover handlers with ExtraButtonComponent (license eye, readme eye, copy button).
Remove now-dead tubesage-icon-button and tubesage-icon-button-hover CSS rules.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 10:38:42 +02:00
Richard McCorkle
950a087df5 refactor(ui): render settings info icon with native setIcon 2026-05-18 10:28:10 +02:00
Richard McCorkle
c4aa28afad docs: implementation plan for Tier A native-component migration
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 10:21:44 +02:00
Richard McCorkle
f1bd48ab46 docs: design spec for Tier A native-component migration
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 10:16:36 +02:00
Richard McCorkle
58f0e2a480 chore: bump to 1.3.3
Releases the current state as a stable before/after boundary:
- Copy template button restored (mobile users cannot scroll the
  template example), plus a mobile touch-scroll hint.
- Settings info-icon tooltips fixed: native Obsidian setTooltip
  replaces the flaky custom hover tooltip; OpenRouter reliability
  note added to the LLM tooltip.
- Workflow and data-flow mermaid diagrams refreshed to current
  architecture.
- README links made absolute so they resolve on the community site;
  demo video linked.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 10:08:55 +02:00
Richard McCorkle
b6a67fe822 Merge docs-absolute-links: fix community-site README links
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 09:58:43 +02:00
Richard McCorkle
1d8e6cef0c docs: use absolute GitHub URLs in README, add demo video link
Relative links (docs/, LICENSE, MIT-license-tubesage.md) resolve
against community.obsidian.md on the plugin's community page and 404.
Switch them to absolute github.com URLs so they work on both GitHub
and the community site. Add a link to the demo MP4 hosted in the repo.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 09:58:43 +02:00
Richard McCorkle
28ff432533 Merge copy-tooltips-diagrams: restore copy button, native tooltips, refresh diagrams
- Restore the Copy template button (mobile users cannot scroll the
  template example); add a mobile touch-scroll hint.
- Replace the flaky custom info-icon tooltip with Obsidian's native
  setTooltip; add an OpenRouter reliability note to the LLM tooltip.
- Refresh the workflow and data-flow mermaid diagrams to current
  architecture.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 09:44:04 +02:00
Richard McCorkle
b878aae1e0 docs: refresh workflow and data-flow mermaid diagrams
Replace speculative/fictional components with architecture facts
verified from source: secret storage for cloud API keys, collectUnder
scoped folder traversal, LangChainClient dispatch for cloud providers,
OllamaClient for local, obsidianFetch shim for all HTTP, tiktoken
stubbed at build time, and OpenRouter as a supported cloud provider.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 09:41:30 +02:00
Richard McCorkle
6a5461d71c fix: use native setTooltip for settings info icons, add OpenRouter note
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 09:24:21 +02:00
Richard McCorkle
f61c314eb8 feat: restore Copy template button, add mobile touch-scroll hint
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 09:17:50 +02:00
Richard McCorkle
9c1d1cdc76 docs: implementation plan for copy button, tooltips, diagram refresh
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 09:15:54 +02:00
Richard McCorkle
050e99a0cd docs: design spec for copy button, info-tooltips, diagram refresh
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 09:12:14 +02:00
Richard McCorkle
53a770b184 chore: bump to 1.3.2
Release of the vault-enumeration and clipboard surface reduction:
the plugin no longer calls getMarkdownFiles / getAllLoadedFiles or
navigator.clipboard, so the Obsidian scorecard's Vault Enumeration and
Clipboard Access flags clear.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 21:34:01 +02:00
Richard McCorkle
a7911399a4 Merge vault-clipboard-surface: remove vault-enumeration and clipboard surface
Replace whole-vault enumeration (getMarkdownFiles/getAllLoadedFiles) with
a scoped collectUnder folder-walk, and remove the Copy template button
(the only navigator.clipboard use), to clear the Obsidian scorecard's
Vault Enumeration and Clipboard Access flags.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 21:29:30 +02:00
Richard McCorkle
3710f47f19 refactor: remove dead copy-button CSS rules
The .tubesage-template-view-copy-container and -copy-text rules were
used only by the Copy template button removed in the previous commit.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 21:26:37 +02:00
Richard McCorkle
d658ae21ef refactor: remove Copy template button (drops navigator.clipboard use)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 21:23:50 +02:00
Richard McCorkle
b1282e8c6d refactor: drop diagnostic vault enumeration in note-not-found branch 2026-05-17 21:20:57 +02:00
Richard McCorkle
fc8e415099 refactor: folder picker walks the root folder subtree 2026-05-17 21:19:05 +02:00
Richard McCorkle
c0523a3b34 refactor: template picker walks the templates folder subtree 2026-05-17 21:11:57 +02:00
Richard McCorkle
10dea4d04e feat: add collectUnder folder-walk helper 2026-05-17 21:08:52 +02:00
Richard McCorkle
16f9438879 docs: implementation plan for reducing vault/clipboard surface
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 21:07:09 +02:00
Richard McCorkle
35c0f935d0 docs: design spec for reducing vault-enumeration and clipboard surface
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 21:01:51 +02:00
Richard McCorkle
96740ebee7 Merge release-1.3.1: network-free tiktoken stub
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 20:33:50 +02:00