Skip to content

Releases: uzusio/obsidian-sr-popup-review

1.0.5

Choose a tag to compare

@github-actions github-actions released this 17 Aug 02:39

1.0.5

Added

  • Options menu in the popup (⋯ next to ✕): pause until resumed, or snooze popups for 30 minutes / 1 hour / 3 hours. Snooze persists across restarts, shows in the settings schedule line, and resuming via the status-bar bell clears it.
  • New-card introduction is now an explicit three-state mode: don't introduce / up to a daily limit (default, 10/day) / unlimited — the previous numeric-only setting could not express "unlimited". Existing settings migrate automatically.

Fixed

  • Popups no longer appear back-to-back. The popup interval was measured from when a popup was shown, so one left open past the interval was immediately followed by the next after being rated. The interval now restarts when a popup ends, keeping popups at least one interval apart.

追加

  • ポップアップにオプションメニュー(✕の左の⋯):再開するまで停止/30分・1時間・3時間のスヌーズ。スヌーズは再起動をまたいで維持され、設定画面に表示、ベルアイコンでの再開で解除されます
  • 新規カードの導入が3状態の明示的なモードに:出さない/1日の上限枚数まで(デフォルト10枚)/無制限。既存設定は自動移行されます

修正

  • ポップアップが連続で表示される問題を修正。 間隔の起点が表示時刻だったため、長時間開いたままのポップアップを評価すると直後に次が出ていました。間隔はポップアップ終了時から数え直すようになり、常に設定した間隔以上空きます

1.0.4

Choose a tag to compare

@github-actions github-actions released this 14 Aug 05:07

1.0.4

Added

  • New cards per day (default 10): never-reviewed cards previously could not enter the review cycle through popups at all. Now, when nothing is due, up to N new cards per day are introduced (due cards always take priority). Set to 0 for the old due-cards-only behavior. This replaces the "Due cards only" toggle.
  • Persistent diagnostics log: every scheduler decision and popup lifecycle event is appended to diagnostics.log inside the plugin folder (size-capped, auto-trimmed), so "popups seemed to stop" can be investigated after the fact.

Fixed

  • The settings schedule line now reports the internal wait state honestly (e.g. after a nothing-due check) instead of promising a popup within a minute.

追加

  • 「1日の新規カード導入枚数」(デフォルト10):未レビューの新規カードがポップアップ経由で復習サイクルに入れない問題を解消。期限カードを常に優先しつつ、期限がないときに1日N枚まで新規カードを導入します。0で旧「期限カードのみ」挙動。旧トグルはこの設定に置き換えられました
  • 診断ログの永続化:全ての判定とポップアップの動作がプラグインフォルダ内の diagnostics.log に記録されます(サイズ上限・自動トリム付き)

修正

  • 設定画面の「ポップアップ予定」が内部の待機状態(対象カードなし後の再チェック待ち等)を正直に表示するようになりました

1.0.3

Choose a tag to compare

@github-actions github-actions released this 10 Aug 12:45

1.0.3

Added

  • Skip popups during fullscreen apps (default on, Windows only): before showing a popup, the plugin asks Windows whether a fullscreen app or presentation is in the foreground (SHQueryUserNotificationState — the same signal the OS uses to suppress its own toasts). Games, slideshows, and F11 fullscreen postpone the popup; the card appears within a minute after fullscreen ends. Fails open on any error, and the manual show-popup-now command is unaffected.

追加

  • 「フルスクリーンアプリ中はポップアップを出さない」(デフォルトON・Windows専用):ゲーム・スライドショー・F11全画面などのフルスクリーン状態をWindowsに問い合わせて検出し、その間はポップアップを見送ります。フルスクリーン終了後1分以内にカードが表示されます。手動の「今すぐ表示」コマンドには影響しません。

1.0.2

Choose a tag to compare

@github-actions github-actions released this 21 Jul 14:57

1.0.2

Fixed

  • Popups could silently stop after a popup closed itself. On some Electron conditions the plugin never noticed the window was gone and kept holding a destroyed remote window, whose every member access throws ("Object has been destroyed") — leaking a throwing timer and blocking all future popups until Obsidian restarted. All window access is now exception-safe, and the heartbeat doubles as a reaper that detects and cleans up a vanished window within 30 seconds.

Added

  • Randomize deck order (default on): each popup card is now picked from a random deck weighted by its due-card count, so every due card has a roughly equal chance. Previously Spaced Repetition's sequential deck order meant the first deck in the tree supplied every popup while later decks were starved indefinitely. Turn the new setting off to restore the native deck order.

Docs

  • Installation instructions now point to the community plugin browser.

修正

  • ポップアップが自己クローズした後、以降のポップアップが黙って止まることがある問題を修正。 ウィンドウ消滅をプラグインが検知できない条件があり、破壊済みウィンドウ(アクセスするだけで例外)を握り続けて全ポップアップが停止していました。全アクセスを例外安全化し、ハートビートが消滅したウィンドウを30秒以内に検出・後始末するようになりました。

追加

  • 「デッキ順を無視してランダムに出題」(デフォルトON):期限枚数で重み付けしたランダムなデッキから出題し、全期限カードがほぼ等確率になります。従来はツリー先頭のデッキが常に供給源となり、後ろのデッキが出ない問題がありました。

1.0.1

Choose a tag to compare

@github-actions github-actions released this 16 Jul 06:53

1.0.1 — Community review fixes

No functional changes. This release addresses the community plugin review findings for 1.0.0:

  • Type safety: removed all any usage (and the eslint-disable directives that hid it). The Spaced Repetition internals and the Electron remote surface are now described by structural interfaces whose members are probed before use — same defensive behavior, now fully type-checked (0 errors under typescript-eslint recommendedTypeChecked + eslint-plugin-obsidianmd).
  • Styles: the last direct style assignment replaced with a CSS class.
  • Language detection: uses Obsidian's getLanguage() instead of localStorage; minAppVersion raised to 1.8.7.
  • Build provenance: release assets are now attested via GitHub artifact attestations (actions/attest-build-provenance).
  • Build config: builtin-modules package replaced with node:module's builtinModules; DOM creation via Obsidian helpers (createDiv, activeDocument).

Known remaining warnings: the settings tab intentionally stays on display() — the dual-list deck picker is a custom control that the declarative getSettingDefinitions() API does not cover.


機能変更なし。1.0.0のコミュニティ審査指摘への対応リリースです(any全廃・スタイルのクラス化・getLanguage()採用・ビルド来歴証明の付与など)。

1.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 04:53

1.0.0 — First stable release

Functionally identical to 0.1.2; this release declares the plugin stable ahead of the community plugin submission.

What this plugin does: at a configurable interval, one due flashcard from the Spaced Repetition plugin pops up at the bottom-right of your desktop — without stealing focus, even while Obsidian is minimized. Reveal the answer (Space) and rate it (1–4) right in the popup; ratings are written through Spaced Repetition's own review pipeline, so scheduling data stays fully consistent.

  • Interval scheduling with do-not-disturb hours and a check-on-startup option
  • Deck filter (dual-list picker), due-cards-only mode
  • Pause via the status-bar bell icon / command / settings toggle
  • Defensive integration: every Spaced Repetition internal is probed before use; incompatible versions disable popups instead of risking data
  • English / 日本語

安定版宣言のリリースです。機能は0.1.2と同一です。コミュニティプラグイン申請はこのリリースをもって行います。

0.1.2

Choose a tag to compare

@github-actions github-actions released this 08 Jul 08:59

What's changed

  • Renamed to "Popup Review for Spaced Repetition" (plugin id unchanged).
  • Pause switch: click the bell icon in the status bar (bottom right), run the toggle-pause command, or flip the settings toggle. The manual show-popup-now command still works while paused.
  • Check on startup fixed: it now ignores the popup interval (do-not-disturb still applies) and retries while Spaced Repetition is still indexing large vaults.
  • Long-session hardening (popups could silently stop after hours of uptime):
    • a stuck scheduler tick is abandoned after 5 minutes instead of muting all future popups
    • unresponsive popup windows (e.g. after system sleep) are detected and destroyed
    • a heartbeat closes the popup automatically if Obsidian quits or hangs — popups can no longer outlive Obsidian
    • after a nothing-due check the vault is not re-scanned for 15 minutes
  • Saving no longer traps you: if a review write doesn't respond, the popup unlocks its close button after 60 s and the plugin times the write out after 90 s with a notice. Every skip/decision is logged to the developer console for diagnosis.
  • Popup schedule line in settings: last popup time and the earliest next popup time (accounts for do-not-disturb and pause).
  • Always-on-top hardened: the popup now uses the highest z-band so overlay apps no longer cover it (exclusive-fullscreen games still do — OS limitation).

  • プラグイン名を Popup Review for Spaced Repetition に変更(idは不変)
  • 一時停止スイッチ:右下ステータスバーのベルアイコン/コマンド/設定トグルの3経路
  • 起動直後チェックの修正:間隔を無視して表示(停止時間帯は優先)、SRの索引作成中はリトライ
  • 長時間セッション対策:詰まった判定の5分ウォッチドッグ、無応答ポップアップの検出破棄、Obsidian終了時にポップアップが自壊するハートビート、nothing-due後15分のsyncバックオフ
  • 「保存中…」対策:60秒で✕/Esc解放、書き込み90秒タイムアウト、全判定のコンソールログ
  • 設定画面にポップアップ予定(前回/次回)を表示
  • 最前面の強化:最高zバンド使用(排他的フルスクリーンのゲームのみ非対応)

0.1.1

Choose a tag to compare

@github-actions github-actions released this 05 Jul 05:57

What's changed

  • Dual-list deck picker in settings: move decks between Available decks and Target decks with the add/remove buttons (double-click and Ctrl/Shift multi-select work too). The deck filter is now simply All decks / Only listed decks — the exclude (blacklist) mode was removed, and old settings migrate automatically. An empty target list means all decks appear.
  • Do not disturb: the quiet-hours setting was renamed and reworked into a single row with an on/off toggle and native start–end time inputs. The old "set start = end to disable" convention is gone (migrated automatically).
  • Usage README in English and Japanese.

  • 設定にデュアルリスト式のデッキ選択UIを追加(「既存のデッキ」⇄「対象のデッキ」を追加/除外ボタンで移動、ダブルクリック・複数選択対応)。デッキフィルタは「全デッキ / リストのデッキのみ」の2択に簡素化(除外モードは廃止・自動移行)。対象リストが空の間は全デッキが出ます
  • ポップアップ停止時間帯(旧・静穏時間): オン/オフトグル+開始〜終了の時刻入力の1行UIに刷新(「開始=終了で無効」の運用は廃止・自動移行)
  • 使い方README(英語・日本語)を追加

0.1.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 18:14
ci: release workflow (build + draft release with plugin assets on tag…