Skip to content

Commit 8cba48a

Browse files
committed
feat: complete Forkara runtime identity break
Move runtime, packaging, protocol, and release identities to Forkara and add a verified copy-only legacy profile import boundary.
1 parent 10f3a77 commit 8cba48a

838 files changed

Lines changed: 5803 additions & 5356 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/verify/SKILL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
# Verify: run Synara locally for runtime verification
1+
# Verify: run Forkara locally for runtime verification
22

3-
How to launch an isolated Synara instance (server + web) to observe UI changes, without touching `~/.synara` or the default dev ports.
3+
How to launch an isolated Forkara instance (server + web) to observe UI changes, without touching `~/.forkara` or the default dev ports.
44

55
## Launch
66

77
```bash
88
# 1. Server (from the directory you want as the workspace/project cwd):
9-
SYNARA_HOME=<scratch>/synara-home \
10-
SYNARA_PORT=3899 SYNARA_MODE=web SYNARA_NO_BROWSER=1 \
9+
FORKARA_HOME=<scratch>/forkara-home \
10+
FORKARA_PORT=3899 FORKARA_MODE=web FORKARA_NO_BROWSER=1 \
1111
VITE_DEV_SERVER_URL=http://localhost:5899 \
1212
bun <repo>/apps/server/src/index.ts &
1313

.docs/architecture.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Architecture
22

3-
Synara is a local-first orchestration application with three main runtime surfaces:
3+
Forkara is a local-first orchestration application with three main runtime surfaces:
44

55
- the React web client in `apps/web`;
66
- the server/runtime in `apps/server`;
77
- the Electron desktop shell in `apps/desktop`.
88

9-
The server owns durable orchestration, provider sessions, Git/worktree state, terminals, automation, device/browser integrations, and the typed HTTP/WebSocket RPC surface. Provider-native protocols stay behind adapter boundaries; the web app consumes Synara contracts rather than talking to coding-agent CLIs directly.
9+
The server owns durable orchestration, provider sessions, Git/worktree state, terminals, automation, device/browser integrations, and the typed HTTP/WebSocket RPC surface. Provider-native protocols stay behind adapter boundaries; the web app consumes Forkara contracts rather than talking to coding-agent CLIs directly.
1010

1111
```text
1212
┌──────────────────────────────────────────────┐
@@ -124,7 +124,7 @@ Provider-specific session ids, process lifecycle, wire formats, model discovery,
124124

125125
## Persistence and local resources
126126

127-
Synara's server owns the local durable state and resource lifecycles:
127+
Forkara's server owns the local durable state and resource lifecycles:
128128

129129
- SQLite persistence and projections under `apps/server/src/persistence`;
130130
- managed Git/worktree operations under `apps/server/src/git` and checkpointing/orchestration services;
@@ -136,7 +136,7 @@ This ownership is why the web client can reload or reconnect without becoming th
136136

137137
## Desktop shell
138138

139-
`apps/desktop` is a native host, not a second orchestration implementation. It supervises a desktop-scoped Synara backend, loads the shared web UI, and provides OS/Electron integrations such as window lifecycle, native menus/shortcuts, updates, and platform-specific bridges.
139+
`apps/desktop` is a native host, not a second orchestration implementation. It supervises a desktop-scoped Forkara backend, loads the shared web UI, and provides OS/Electron integrations such as window lifecycle, native menus/shortcuts, updates, and platform-specific bridges.
140140

141141
Browser/web mode and desktop mode therefore share the same server contracts and most UI code.
142142

@@ -149,7 +149,7 @@ For orchestration state, the client uses two principal subscription shapes:
149149
- a lightweight shell stream for projects/thread summaries and application-level navigation state;
150150
- scoped thread-detail streams for full conversation/activity state.
151151

152-
Streams support snapshot/replay recovery and client-side sequence fences. A late query or replay must not roll the client behind a newer live sequence; when recovery cannot be proven safe, Synara prefers a fresh snapshot.
152+
Streams support snapshot/replay recovery and client-side sequence fences. A late query or replay must not roll the client behind a newer live sequence; when recovery cannot be proven safe, Forkara prefers a fresh snapshot.
153153

154154
## Design rules
155155

.docs/ci.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
`Format, Lint, Typecheck, Test, Browser Test, Build` runs on Ubuntu and blocks on:
88

9-
- Synara identity/brand validation;
9+
- Forkara identity/brand validation;
1010
- `bun run fmt:check`;
1111
- `bun run lint`;
1212
- `bun run typecheck`;

.docs/codex-prerequisites.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Codex prerequisites
22

33
- Install Codex CLI so `codex` is on your PATH.
4-
- Authenticate Codex before running Synara (for example via API key or ChatGPT auth supported by Codex).
5-
- Synara starts the server via `codex app-server` per session.
4+
- Authenticate Codex before running Forkara (for example via API key or ChatGPT auth supported by Codex).
5+
- Forkara starts the server via `codex app-server` per session.

.docs/encyclopedia.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Encyclopedia
22

3-
This is a living glossary for Synara. It explains what common terms mean in this codebase.
3+
This is a living glossary for Forkara. It explains what common terms mean in this codebase.
44

55
## Table of contents
66

.docs/provider-architecture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Provider architecture
22

3-
Synara treats provider integrations as adapters behind server-owned orchestration and discovery boundaries. The web app does not talk to Codex, Claude, Cursor, or another coding-agent runtime directly: provider operations enter the server through the typed contracts in `@forkara/contracts`. Session and turn lifecycle calls route through `ProviderService`; model, agent, skill, command, and plugin discovery routes through `ProviderDiscoveryService`; both ultimately resolve concrete `ProviderAdapter` implementations from the registry. Voice operations may access the registry directly where the provider capability is itself the boundary.
3+
Forkara treats provider integrations as adapters behind server-owned orchestration and discovery boundaries. The web app does not talk to Codex, Claude, Cursor, or another coding-agent runtime directly: provider operations enter the server through the typed contracts in `@forkara/contracts`. Session and turn lifecycle calls route through `ProviderService`; model, agent, skill, command, and plugin discovery routes through `ProviderDiscoveryService`; both ultimately resolve concrete `ProviderAdapter` implementations from the registry. Voice operations may access the registry directly where the provider capability is itself the boundary.
44

55
## Implemented providers
66

.docs/quick-start.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ bun run dev
1212
bun run dev:desktop
1313

1414
# Desktop development on an isolated port set
15-
SYNARA_DEV_INSTANCE=feature-xyz bun run dev:desktop
15+
FORKARA_DEV_INSTANCE=feature-xyz bun run dev:desktop
1616
```
1717

1818
## Production-style local run
@@ -37,10 +37,10 @@ bun run dist:desktop:win
3737

3838
## Published CLI package
3939

40-
The server package is published as `@forkara/cli` and exposes the `synara` executable. To run an npm-published version without installing it globally:
40+
The server package is published as `@forkara/cli` and exposes the `forkara` executable. To run an npm-published version without installing it globally:
4141

4242
```bash
43-
npx --yes --package=@forkara/cli synara --help
43+
npx --yes --package=@forkara/cli forkara --help
4444
```
4545

4646
For repository scripts, release packaging, and multi-instance development details, see [scripts.md](./scripts.md).

.docs/runtime-modes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Runtime modes
22

3-
Synara exposes three runtime modes in the permission picker:
3+
Forkara exposes three runtime modes in the permission picker:
44

55
- **Supervised**: asks the user before protected actions. Codex uses
66
`approvalPolicy: untrusted`, `sandbox: read-only`, and

.docs/scripts.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
- `bun run dev` — Starts contracts, server, and web in `turbo watch` mode.
44
- `bun run dev:server` — Starts just the WebSocket server (uses Bun TypeScript execution).
55
- `bun run dev:web` — Starts just the Vite dev server for the web app.
6-
- Dev commands default `SYNARA_HOME` to `~/.synara`, which keeps dev state under `~/.synara/dev`.
6+
- Dev commands default `FORKARA_HOME` to `~/.forkara`, which keeps dev state under `~/.forkara/dev`.
77
- Override server CLI-equivalent flags from root dev commands with `--`, for example:
8-
`bun run dev -- --home-dir ~/.synara-2`
8+
`bun run dev -- --home-dir ~/.forkara-2`
99
- `bun run start` — Runs the production server (serves built web app as static files).
1010
- `bun run build` — Builds contracts, web app, and server through Turbo.
1111
- `bun run typecheck` — Strict TypeScript checks for all packages.
@@ -20,8 +20,8 @@
2020

2121
- Default local builds are unsigned/not notarized unless `--signed` is supplied with the required platform credentials.
2222
- Production icon sources are centralized in `scripts/lib/brand-assets.ts`. The current macOS source is `assets/prod/black-macos-1024.png` (with the legacy macOS variant alongside it); do not hard-code a separate packaging icon path in docs or scripts.
23-
- Desktop production windows load the bundled UI from `synara://app/index.html` (not a `127.0.0.1` document URL).
24-
- Desktop packaging includes `apps/server/dist` (the `synara` backend) and starts it on loopback with an auth token for WebSocket/API traffic.
23+
- Desktop production windows load the bundled UI from `forkara://app/index.html` (not a `127.0.0.1` document URL).
24+
- Desktop packaging includes `apps/server/dist` (the `forkara` backend) and starts it on loopback with an auth token for WebSocket/API traffic.
2525
- Your tester can still open an unsigned local macOS build by right-clicking the app and choosing **Open** on first launch.
2626
- To keep staging files for debugging package contents, run: `bun run dist:desktop:dmg -- --keep-stage`.
2727
- To enable code-signing/notarization when the required credentials are configured, add `--signed`.
@@ -35,10 +35,10 @@
3535

3636
## Running multiple dev instances
3737

38-
Set `SYNARA_DEV_INSTANCE` to any value to deterministically shift all dev ports together.
38+
Set `FORKARA_DEV_INSTANCE` to any value to deterministically shift all dev ports together.
3939

4040
- Default ports: server `3773`, web `5733`
41-
- Shifted ports: `base + offset` (offset is hashed from `SYNARA_DEV_INSTANCE`)
42-
- Example: `SYNARA_DEV_INSTANCE=branch-a bun run dev:desktop`
41+
- Shifted ports: `base + offset` (offset is hashed from `FORKARA_DEV_INSTANCE`)
42+
- Example: `FORKARA_DEV_INSTANCE=branch-a bun run dev:desktop`
4343

44-
If you want full control instead of hashing, set `SYNARA_PORT_OFFSET` to a numeric offset.
44+
If you want full control instead of hashing, set `FORKARA_PORT_OFFSET` to a numeric offset.

.docs/transport.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
How the browser and server talk: connect negotiation, WebSocket compression, and static asset delivery.
44

5-
Synara's transport was originally built for localhost, where bandwidth is free and latency is negligible. The mechanisms below exist because neither holds over a real network — they are also what makes running a session against a remote host practical.
5+
Forkara's transport was originally built for localhost, where bandwidth is free and latency is negligible. The mechanisms below exist because neither holds over a real network — they are also what makes running a session against a remote host practical.
66

77
## Connect negotiation
88

0 commit comments

Comments
 (0)