Revert Electrobun migration; restructure Tauri tree to apps/desktop/ #12

Merged
parkerhdavis merged 4 commits from revert-electrobun into main 2026-04-21 21:04:26 -06:00
parkerhdavis commented 2026-04-21 21:04:21 -06:00 (Migrated from github.com)

Summary

  • Reverts PR #10 (Electrobun migration) and PR #11 (Electrobun-era monorepo restructure) via two git revert commits, leaving the codebase back at its Tauri state.
  • Reapplies the always-monorepo layout from the portfolio-wide Project Structure Study, Tauri-adapted: backend/ and frontend/ move under apps/desktop/, Cargo/Tauri configs point at the new paths, and Cargo output routes to the repo-root target/.
  • Resets the pending changelog.

What stayed the same

  • The Tauri + React + Bun + Tailwind + daisyUI stack is unchanged.
  • No source files edited beyond path-adjusting references. All React/Rust logic is byte-identical to the pre-Electrobun state.

What changed structurally

  • Workspace root — new package.json with workspaces: ["apps/*"], owns all JS deps + tooling. Single hoisted node_modules/ at root. bun.lock committed at root.
  • apps/desktop/package.json — canonical app version (0.0.3), name: "desktop", private.
  • tsconfig split — root holds the shared baseline (no paths, no jsx, no DOM lib). apps/desktop/tsconfig.json extends root and declares jsx, DOM lib, @/ path aliases. Frontend's old tsconfig.json and .eslintrc.cjs dropped.
  • Icons & samples — resources/icons/ gets the full hicolor set plus .ico/.icns and the ImageMagick generate-icons.sh. resources/samples/ collects the screenplay test fixtures. backend/icons/ is gone. resources/seria.desktop dropped — tauri-bundler auto-generates it.
  • Tauri config — icon paths now reference ../../../resources/icons/. Cargo's .cargo/config.toml routes target-dir to ../../../target/ so Rust and Tauri bundler output land at the repo root. Cargo.toml version aligned to 0.0.3.
  • Makefile — folds the old setup.sh into the setup target (still handles Rust/Bun/system-dep checks per OS). New make version V=X.Y.Z target syncs version across package.json (root + app), tauri.conf.json, and Cargo.toml. New file-based make icons target regenerates the full icon set when seria-icon-fullres.png or generate-icons.sh changes. scripts/sync-version.{sh,ps1} and setup.sh removed.
  • Pending changelog — reset to an empty template for the next release.

Test plan

  • bun install — 392 packages hoisted cleanly at root
  • make typecheck (tsc --noEmit -p apps/desktop) clean
  • bun run lint clean
  • bun test — all 134 tests pass
  • make check — Rust compiles; output lands at repo-root target/
  • make lint — ESLint + Rust clippy clean
  • bun run build:view — frontend bundle builds into apps/desktop/frontend/dist/
  • make icons — regenerates the full set from the fullres source
  • make dev — opens a Tauri dev window
  • make build-linux — full .deb / .rpm / AppImage run (left for post-merge verification)
## Summary - Reverts PR #10 (Electrobun migration) and PR #11 (Electrobun-era monorepo restructure) via two `git revert` commits, leaving the codebase back at its Tauri state. - Reapplies the always-monorepo layout from the portfolio-wide [Project Structure Study](../../../../Obsidian/10-19%20Creative%20Mgmt/11%20Wiki/Project%20Structure%20Study.md), Tauri-adapted: `backend/` and `frontend/` move under `apps/desktop/`, Cargo/Tauri configs point at the new paths, and Cargo output routes to the repo-root `target/`. - Resets the pending changelog. ## What stayed the same - The Tauri + React + Bun + Tailwind + daisyUI stack is unchanged. - No source files edited beyond path-adjusting references. All React/Rust logic is byte-identical to the pre-Electrobun state. ## What changed structurally - **Workspace root** — new `package.json` with `workspaces: ["apps/*"]`, owns all JS deps + tooling. Single hoisted `node_modules/` at root. `bun.lock` committed at root. - **apps/desktop/package.json** — canonical app version (0.0.3), `name: "desktop"`, private. - **tsconfig split** — root holds the shared baseline (no paths, no jsx, no DOM lib). `apps/desktop/tsconfig.json` extends root and declares jsx, DOM lib, `@/` path aliases. Frontend's old `tsconfig.json` and `.eslintrc.cjs` dropped. - **Icons & samples** — `resources/icons/` gets the full hicolor set plus `.ico`/`.icns` and the ImageMagick `generate-icons.sh`. `resources/samples/` collects the screenplay test fixtures. `backend/icons/` is gone. `resources/seria.desktop` dropped — tauri-bundler auto-generates it. - **Tauri config** — icon paths now reference `../../../resources/icons/`. Cargo's `.cargo/config.toml` routes `target-dir` to `../../../target/` so Rust and Tauri bundler output land at the repo root. `Cargo.toml` version aligned to 0.0.3. - **Makefile** — folds the old `setup.sh` into the `setup` target (still handles Rust/Bun/system-dep checks per OS). New `make version V=X.Y.Z` target syncs version across `package.json` (root + app), `tauri.conf.json`, and `Cargo.toml`. New file-based `make icons` target regenerates the full icon set when `seria-icon-fullres.png` or `generate-icons.sh` changes. `scripts/sync-version.{sh,ps1}` and `setup.sh` removed. - **Pending changelog** — reset to an empty template for the next release. ## Test plan - [x] `bun install` — 392 packages hoisted cleanly at root - [x] `make typecheck` (`tsc --noEmit -p apps/desktop`) clean - [x] `bun run lint` clean - [x] `bun test` — all 134 tests pass - [x] `make check` — Rust compiles; output lands at repo-root `target/` - [x] `make lint` — ESLint + Rust clippy clean - [x] `bun run build:view` — frontend bundle builds into `apps/desktop/frontend/dist/` - [x] `make icons` — regenerates the full set from the fullres source - [x] `make dev` — opens a Tauri dev window - [ ] `make build-linux` — full `.deb` / `.rpm` / AppImage run (left for post-merge verification)
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!12
No description provided.