No description
  • TypeScript 69.4%
  • Rust 16.1%
  • CSS 13.4%
  • Python 0.6%
  • JavaScript 0.5%
Find a file
Rachel Snijders 0be4653730 Complete the engine operations; the restored frontend builds and typechecks
Thread, document, note, decision, recipe and workspace operations, plus the
engine lifecycle. This was the slice a session limit interrupted, and the
gap it left had been invisible behind a broken verification script.

With it done:

- `npx tsc --noEmit` — clean across 288 files, 51,587 lines
- `npx vite build` — 1521 modules, four chunks matching the shipped split,
  the codec worker and the wasm module, no stubs
- `npx vitest run` — 15/15
- 1102 of 1106 app strings present; the four outstanding are two dependency
  strings, one parser false positive, and one string the formatter wrapped
- 742 of 955 stylesheet classes referenced

`main.tsx` no longer casts: LocalEngine satisfies DesktopEngine outright.
Three port declarations that narrowed what the engine really returns were
corrected against the bundle rather than the engine bent to fit them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-18 07:09:35 +02:00
dist Initial commit 2026-09-17 23:01:08 +02:00
frontend Complete the engine operations; the restored frontend builds and typechecks 2026-09-18 07:09:35 +02:00
keys Initial commit 2026-09-17 23:01:08 +02:00
packages Fix IPC shape mismatches between the Rust commands and the frontend 2026-09-17 23:59:49 +02:00
scripts Restore the conversation screens and the last support modules 2026-09-18 06:29:46 +02:00
src-tauri Validate commit hashes before they reach a git command line 2026-09-18 00:37:46 +02:00
.gitignore Fix IPC shape mismatches between the Rust commands and the frontend 2026-09-17 23:59:49 +02:00
Cargo.lock Initial commit 2026-09-17 23:01:08 +02:00
Cargo.toml Initial commit 2026-09-17 23:01:08 +02:00
README.md Initial commit 2026-09-17 23:01:08 +02:00

Enjoy

A local workspace with a cofounder: a Tauri 2 desktop app that runs coding agents (Claude Code, Codex, Grok) against your project folders.

Layout

  • src-tauri/ — the app (package enjoy, library crate enjoy_lib)
  • src-tauri/agent-policies.json — agent CLI integration policies, compiled in
  • packages/terminal/native — PTY terminal sessions (enjoy_terminal)
  • packages/crypto — Noise-based secure sessions for remote access (enjoy_crypto, also builds to wasm)
  • packages/diff-viewer/native — line diff engine (enjoy_diff_viewer)
  • dist/ — the frontend build, embedded into the app
  • keys/ — updater signing keys (the private key is git-ignored)

See ARCHITECTURE.md for the module map and IPC contract.

Run

cargo run -p enjoy

Requires Rust 1.89 or newer. On Linux, install Tauri's system dependencies (WebKitGTK 4.1 and friends). Debug and release builds both load dist/; no dev server is needed.

Test

cargo test --workspace

Windows releases

Enjoy ships for Windows. Build releases on Windows or in CI: cross-checking from Linux fails in ring, which needs the MSVC C headers.

Updater keys

keys/enjoy-releases-private.key (minisign, key ID E0711CF3BB677FC0) signs releases. Keep it out of version control and backed up somewhere safe. Its public half is in src-tauri/tauri.conf.json as the base64 of the whole .pub file (base64 -w0 keys/enjoy-releases-public.pub).

To sign a release artifact and get the signature value for latest.json:

minisign -S -s keys/enjoy-releases-private.key -m <artifact>
base64 -w0 <artifact>.minisig

Versions up to 0.1.26 were signed with the previous key (ID 51E355D13A55F843). Those installs can't verify updates signed with the current key, so they need a one-time manual install of the next release.