Migrate from Tauri to Electrobun #10

Merged
parkerhdavis merged 11 commits from port/electrobun into main 2026-04-20 14:59:04 -06:00
parkerhdavis commented 2026-04-20 14:41:37 -06:00 (Migrated from github.com)

Summary

Port of Seria from Tauri 2.0 (Rust backend) to Electrobun (single-runtime Bun) per the Electrobun Port Plan. Seria becomes the first test of the single-runtime desktop pipeline, paving the way for Poppy and Lily.

  • Entire Rust backend (1900+ lines: file_ops, storage, screenplay converter, CSV diff) ported to TypeScript under Bun.
  • All 16 former Tauri commands + thin wrappers for dialog/clipboard/fs/window/path become typed RPC methods shared between main and renderer.
  • React/Zustand tree moved from frontend/src/ → src/mainview/ with mechanical import-path changes only; component/store logic intact.
  • backend/, scripts/sync-version.*, and every @tauri-apps/* dep removed.
  • Storage locations (~/.config/seria/ etc.) unchanged so existing preferences/configs/workspaces load without migration.
  • 160 tests passing (renderer, Bun handlers, screenplay converter, CSV diff — including the previously-ignored All-About-Eve roundtrip).

Test plan

Automated (already green locally):

  • bun test — 160 pass (renderer tests + 10 handler smoke tests + 10 screenplay + 6 diff)
  • bunx tsc --noEmit — clean
  • bun build.ts — view + 3 workers bundle cleanly
  • bunx electrobun dev — launches, navigates to views://mainview/index.html, emits main.tsx: RPC bootstrapped + React mounted via viewLog

Manual (for smoke-testing):

  • Open a CSV via the native file dialog; edit, save, reopen, confirm content matches
  • Preferences persist across restarts (~/.config/seria/preferences.json)
  • Custom print save/load/delete cycle
  • Workspace layouts save and restore
  • Screenplay ↔ CSV roundtrip on the All-About-Eve sample
  • CSV diff UI renders expected added/deleted/modified indicators on a known-diff pair
  • Clipboard copy-paste on cell content
  • Custom titlebar minimize/maximize/close still work
  • PDF export writes to the chosen folder

Reassessment signals (from the port plan)

Watch for these during smoke testing — if any show up, flag before merge:

  • Utils.openFileDialog behaving differently on macOS/Windows vs. the Linux spike.
  • Release bundle materially larger than the Tauri baseline (current: 125MB unpackaged Linux bundle vs. Tauri's 79.6MB AppImage; 98MB of that is the bundled Bun runtime, in line with Electrobun's architecture).
  • Worker-message performance regressions on large CSVs (>100k rows).
  • Any screenplay-conversion edge-case differences not covered by the ported tests.
## Summary Port of Seria from Tauri 2.0 (Rust backend) to Electrobun (single-runtime Bun) per the [[Electrobun Port Plan]]. Seria becomes the first test of the single-runtime desktop pipeline, paving the way for Poppy and Lily. - Entire Rust backend (1900+ lines: file_ops, storage, screenplay converter, CSV diff) ported to TypeScript under Bun. - All 16 former Tauri commands + thin wrappers for dialog/clipboard/fs/window/path become typed RPC methods shared between main and renderer. - React/Zustand tree moved from `frontend/src/` → `src/mainview/` with mechanical import-path changes only; component/store logic intact. - `backend/`, `scripts/sync-version.*`, and every `@tauri-apps/*` dep removed. - Storage locations (`~/.config/seria/` etc.) unchanged so existing preferences/configs/workspaces load without migration. - 160 tests passing (renderer, Bun handlers, screenplay converter, CSV diff — including the previously-ignored All-About-Eve roundtrip). ## Test plan Automated (already green locally): - [x] `bun test` — 160 pass (renderer tests + 10 handler smoke tests + 10 screenplay + 6 diff) - [x] `bunx tsc --noEmit` — clean - [x] `bun build.ts` — view + 3 workers bundle cleanly - [x] `bunx electrobun dev` — launches, navigates to `views://mainview/index.html`, emits `main.tsx: RPC bootstrapped` + `React mounted` via viewLog Manual (for smoke-testing): - [ ] Open a CSV via the native file dialog; edit, save, reopen, confirm content matches - [ ] Preferences persist across restarts (`~/.config/seria/preferences.json`) - [ ] Custom print save/load/delete cycle - [ ] Workspace layouts save and restore - [ ] Screenplay ↔ CSV roundtrip on the All-About-Eve sample - [ ] CSV diff UI renders expected added/deleted/modified indicators on a known-diff pair - [ ] Clipboard copy-paste on cell content - [ ] Custom titlebar minimize/maximize/close still work - [ ] PDF export writes to the chosen folder ## Reassessment signals (from the port plan) Watch for these during smoke testing — if any show up, flag before merge: - `Utils.openFileDialog` behaving differently on macOS/Windows vs. the Linux spike. - Release bundle materially larger than the Tauri baseline (current: 125MB unpackaged Linux bundle vs. Tauri's 79.6MB AppImage; 98MB of that is the bundled Bun runtime, in line with Electrobun's architecture). - Worker-message performance regressions on large CSVs (>100k rows). - Any screenplay-conversion edge-case differences not covered by the ported tests.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
parker/seria!10
No description provided.