v0.2.0
scripta v0.2.0 (Electron 版初回リリース)
Electron + React 19 + CodeMirror 6 + zustand v5 + Tailwind CSS v4 + Vite 8 + Biome 製のローカルファイルベース Markdown メモアプリ。
旧 Tauri 版(現在 private)の Electron への完全書き直し版。旧 userData (~/Library/Application Support/scripta/settings.json) との互換を保持しているため、旧版から移行しても workspace / window state は引き継がれます。
ダウンロード
各 OS の配布物は 未署名(コード署名・公証なし、旧 Tauri 版と同方針)。
| OS | アーキテクチャ | ファイル |
|---|---|---|
| macOS | Apple Silicon | scripta-0.2.0-arm64.dmg |
| macOS | Intel | scripta-0.2.0.dmg |
| Windows | x64 | scripta.Setup.0.2.0.exe |
| Linux | AppImage | scripta-0.2.0.AppImage |
| Linux | .deb | scripta-next_0.2.0_amd64.deb |
初回起動時の手順(未署名のため警告が出ます)
- macOS: 初回は Finder で .app を Ctrl+クリック → 「開く」 を選択(または
xattr -d com.apple.quarantine /Applications/scripta.app) - Windows: SmartScreen の「Windows によって PC が保護されました」で 「詳細情報」 → 「実行」 を選択
- Linux (.deb): パッケージ名は
scripta-nextですが、起動するアプリはscriptaです(package.json:name と productName の差分による命名、機能は同じ)
主な変更内容
詳細は CHANGELOG.md を参照。
コア機能(旧 Tauri 版とパリティ)
- ファイル I/O・
chokidarベース監視・純 JS 全文検索/ファイル名検索/未解決 wikilink スキャン simple-gitベースの Git Sync(コンフリクト解決ウィンドウ付き)- OGP リンクカード / PDF / HTML / Prompt(.md) エクスポート
- GitHub Releases API ポーリングによる手動アップデートチェック
新機能(旧版にない)
- ローカル画像レンダリング用カスタムプロトコル
scripta-asset:// - OGP fetch の DNS rebinding 防御強化(
pinSafeLookup/isGlobalIp) - ファイルツリーの隠しファイル / 除外パターン制御
- Settings に「今すぐアップデートを確認」ボタン
dialog:save経由の window-scoped な短命 write capability
セキュリティ
contextIsolation: true/nodeIntegration: false/sandbox: true- CSP は production で
unsafe-inlineなし scripta-asset://は workspace 配下のみ配信(fail-closed)
既知の制限(v1.0.0 で対処予定)
- 未署名配布(Gatekeeper / SmartScreen 警告)
- 自動アップデート(electron-updater)未対応 — 手動でこの Release ページから更新
realpath同期版(#31 で async 化予定)- approve リストがプロセス全体スコープ(#32 で window-scoped 化予定)
自動生成の全 PR 一覧(初回リリースのため全履歴を含む)
What's Changed
- chore: GitHub リポジトリ初期セットアップ(Dependabot / セキュリティ / 設定) by @ymnao in #1
- chore: Stage 0a — Electron + Vite + React の雛形を構築 by @ymnao in #2
- chore: CI ワークフロー(lint / typecheck / test / build)を追加 by @ymnao in #3
- chore: Stage 0b — 旧 React フロントエンドのコピー + Tauri 直接依存差し替え by @ymnao in #4
- chore: 旧 scripta からユニットテスト 60 ファイルを復元(PR B) by @ymnao in #5
- Stage 1: ファイル I/O を本物実装し path-guard で workspace 防御を導入 by @ymnao in #6
- Stage 2: chokidar watcher と searchFilenames / scanUnresolvedWikilinks を実装 by @ymnao in #12
- Stage 3: 純 JS で旧 Rust ロジックを移植して全文検索を実装 by @ymnao in #13
- Stage 4: simple-git で git sync 移植 + コンフリクト解決ウィンドウ by @ymnao in #14
- Stage 5: OGP / PDF / アップデートを Node stdlib で実装 by @ymnao in #15
- Stage 6: ウィンドウ状態の永続化とアプリケーションメニュー by @ymnao in #16
- Stage 6: e2e テスト基盤(Playwright + window.api モック)を追加 by @ymnao in #17
- Stage 6: 旧 Tauri 版 e2e 22 spec を Electron renderer-only モードへ移植 by @ymnao in #18
- Stage 6: 配布パイプラインの基盤整備(electron-builder + release workflow) by @ymnao in #19
- fix: Stage 6 配布パイプラインのレビュー反映(アップデート URL / dev 分離) by @ymnao in #20
- docs: 機能パリティ確認チェックリストを追加(Stage 6 GO/NO-GO 判定用) by @ymnao in #21
- feat: ローカル画像レンダリング用カスタムプロトコル scripta-asset:// を登録 by @ymnao in #35
- Chore(deps): Bump dompurify from 3.4.1 to 3.4.2 by @dependabot[bot] in #11
- Chore(deps): Bump marked from 18.0.2 to 18.0.3 by @dependabot[bot] in #10
- Chore(deps-dev): Bump @biomejs/biome from 2.4.13 to 2.4.14 in the lint-format group across 1 directory by @dependabot[bot] in #9
- Chore(deps-dev): Bump the vite group across 1 directory with 2 updates by @dependabot[bot] in #8
- Chore(deps-dev): Bump electron from 41.3.0 to 42.0.0 in the electron group across 1 directory by @dependabot[bot] in #7
- feat: scanUnresolvedWikilinks の cancellation 対応 (closes #30) by @ymnao in #36
- fix: electron 42 への対応(バイナリ取得補完 + module external 化) by @ymnao in #37
- test: dialog.ts の IPC ハンドラ直接テストを追加 (closes #23) by @ymnao in #38
- feat: OGP fetch の DNS rebinding 防御強化 (closes #29) by @ymnao in #39
- docs: v0.2.0 リリース向け docs 刷新 (closes #24) by @ymnao in #40
- fix: タイトルバー / タブバー UX 改善 (closes #41) by @ymnao in #43
- fix: 罫線 (---) のカーソル行で raw 表示に戻す (closes #42) by @ymnao in #44
- chore: pnpm 11.1.1 へ更新し、設定を pnpm-workspace.yaml に集約 by @ymnao in #57
- feat: ファイルツリーで隠しファイル / 除外パターン設定を追加 (closes #45) by @ymnao in #56
- Chore(deps-dev): Bump @types/node from 25.6.0 to 25.7.0 by @dependabot[bot] in #54
- chore: 依存関係をまとめて更新 (Dependabot 9 PR 統合) by @ymnao in #60
- Chore(deps): Bump write-file-atomic from 7.0.1 to 8.0.0 by @dependabot[bot] in #55
- fix: git.test.ts のネットワークエラーテストを flaky から安定化 by @ymnao in #74
- chore: 依存関係まとめ更新 + brace-expansion DoS 対応 (Dependabot 8 PR + alert #6) by @ymnao in #75
- chore: pnpm dedupe で transitive 重複を統合 (dompurify ほか -6 packages) by @ymnao in #77
- chore: electron を 42.0.1 から 42.2.0 へ更新 (Dependabot #62) by @ymnao in #78
- feat: katex を 0.16.45 から 0.17.0 へ更新 (Dependabot #73) by @ymnao in #80
- docs: 探索 QA チェックリストを追加 (#94 B 先行実施用) by @ymnao in #95
- docs: Tauri 完全除去 Phase 1 PR-1 (inventory + ADR scaffolding) by @ymnao in #102
- chore: Tauri 残骸検出 CI ガードを追加 (#82 Phase 1 PR-2) by @ymnao in #103
- test: 実 Electron e2e 基盤 + safety net (#82 Phase 1 PR-3, closes #33) by @ymnao in #104
- refactor: build target を Electron 42 の実ランタイムへ最適化 (#87) by @ymnao in #105
- refactor: Mermaid の WKWebView 対策コードを削除し thin 化 (#83 Phase 2 PR-2-1) by @ymnao in #107
- refactor: composingClass ViewPlugin を削除し IME 対策を thin 化 (#83 Phase 2 PR-2-2) by @ymnao in #108
- refactor: inline code span スキャンの WebKit/Tauri 由来コメントを書換 (#83 Phase 2 PR-2-3) by @ymnao in #109
- refactor: convertFileSrc を buildAssetUrl へ rename (#84 Phase 3 PR-3-1) by @ymnao in #110
- docs: Phase 3 の設計判断を ADR 0001-0006 に起票 (#84 Phase 3 PR-3-5) by @ymnao in #111
- refactor: コード全体の Tauri/Rust 言及コメントを除去 (#84 Phase 3 PR-3-4) by @ymnao in #112
- refactor: commands.ts を IPC client/retry layer 化し settings を集約 (#84 Phase 3 PR-3-2/3-3) by @ymnao in #113
- refactor: IPC エラーを structured error 化 (Tauri purge Phase 5, #85) by @ymnao in #114
- refactor: 実 Electron e2e を拡充しテスト戦略を精査 (Tauri purge Phase 4, #86) by @ymnao in #115
- fix: テーブル系の挙動を修正(ショートカット統一 / セル paste / 境界カーソル) by @ymnao in #116
- fix: リスト/見出し系のカーソル位置と Enter 継続 (#91, #92) by @ymnao in #117
- fix: テーブル境界カーソル / Cmd+Z / focusout 等の再修正(#89 #90) by @ymnao in #120
- fix: KaTeX CSS の CDN URL を bundle 同梱版と動的同期 (#79) by @ymnao in #124
- fix: PDF / editor の Mermaid ラベル消失・サイズ過大を 6 層 defense で解消 (#106) by @ymnao in #130
- fix: PDF 改ページの過剰問題を hybrid 設計で解消 (#93) by @ymnao in #131
- fix: 等幅フォントが macOS で proportional fallback する問題を解消 (#97) by @ymnao in #132
- docs: fs:write を atomic 化しない設計判断を明記 (#100 / #133 wontfix) by @ymnao in #134
- fix: #96 URL paste と md リンク/OGP カード UX 改善 by @ymnao in #135
- fix: #118 順序付きリストの Tab/Shift+Tab で list-aware なインデント+再採番 by @ymnao in #136
- fix: #101 OGP fetch に AbortController を実装して cancel 可能化 by @ymnao in #137
- feat: #98 Settings に「今すぐアップデートを確認」ボタンを追加 by @ymnao in #138
- chore(deps): 6 件の依存を一括 update + dedupe (#123 #125 #126 #127 #128 #129) by @ymnao in #139
- chore(deps-dev): electron を 42.2.0 → 42.3.3 に update (#122) by @ymnao in #140
- chore: リポジトリリネーム (scripta-next → scripta) に伴う source 更新 (#28) by @ymnao in #141
- release: v0.2.0 (Electron 版初回リリース) by @ymnao in #61
- fix: 構造化エラーの kind を contextBridge 越しに復元(git no-diff 誤「失敗」修正) by @ymnao in #142
- chore: copyright 年を 2025 → 2026 に更新(LICENSE と統一) by @ymnao in #143
New Contributors
- @ymnao made their first contribution in #1
- @dependabot[bot] made their first contribution in #11
Full Changelog: https://github.com/ymnao/scripta/commits/v0.2.0