diff --git a/.claude/skills/verify/SKILL.md b/.claude/skills/verify/SKILL.md index a42d9bfe5..e9d38317f 100644 --- a/.claude/skills/verify/SKILL.md +++ b/.claude/skills/verify/SKILL.md @@ -1,12 +1,12 @@ -# Verify: run Synara locally for runtime verification +# Verify: run Scient locally for runtime verification -How to launch an isolated Synara instance (server + web) to observe UI changes, without touching `~/.synara` or the default dev ports. +How to launch an isolated Scient instance (server + web) to observe UI changes, without touching `~/.scient` or the default dev ports. The `SYNARA_*` names below are inherited runtime compatibility variables; `SCIENT_HOME` is the canonical state-home variable. ## Launch ```bash # 1. Server (from the directory you want as the workspace/project cwd): -SYNARA_HOME=/synara-home \ +SCIENT_HOME=/scient-home \ SYNARA_PORT=3899 SYNARA_MODE=web SYNARA_NO_BROWSER=1 \ VITE_DEV_SERVER_URL=http://localhost:5899 \ bun /apps/server/src/index.ts & diff --git a/.docs/architecture.md b/.docs/architecture.md index 0334e7517..947b402b9 100644 --- a/.docs/architecture.md +++ b/.docs/architecture.md @@ -1,6 +1,6 @@ # Architecture -Synara runs as a **Node.js WebSocket server** that wraps `codex app-server` (JSON-RPC over stdio) and serves a React web app. +Scient runs as a **Node.js WebSocket server** that wraps `codex app-server` (JSON-RPC over stdio) and serves a React web app. ``` ┌─────────────────────────────────┐ diff --git a/.docs/codex-prerequisites.md b/.docs/codex-prerequisites.md index b68e5c89f..cadb83551 100644 --- a/.docs/codex-prerequisites.md +++ b/.docs/codex-prerequisites.md @@ -1,5 +1,5 @@ # Codex prerequisites - Install Codex CLI so `codex` is on your PATH. -- Authenticate Codex before running Synara (for example via API key or ChatGPT auth supported by Codex). -- Synara starts the server via `codex app-server` per session. +- Authenticate Codex before running Scient (for example via API key or ChatGPT auth supported by Codex). +- Scient starts the server via `codex app-server` per session. diff --git a/.docs/encyclopedia.md b/.docs/encyclopedia.md index 60b514d79..0b3c2272f 100644 --- a/.docs/encyclopedia.md +++ b/.docs/encyclopedia.md @@ -1,6 +1,6 @@ # Encyclopedia -This is a living glossary for Synara. It explains what common terms mean in this codebase. +This is a living glossary for Scient. It explains what common terms mean in this codebase. ## Table of contents diff --git a/.docs/quick-start.md b/.docs/quick-start.md index 401b31a23..4f9ba1b1a 100644 --- a/.docs/quick-start.md +++ b/.docs/quick-start.md @@ -8,6 +8,7 @@ bun run dev bun run dev:desktop # Desktop development on an isolated port set +# `SYNARA_DEV_INSTANCE` is an inherited compatibility variable. SYNARA_DEV_INSTANCE=feature-xyz bun run dev:desktop # Production @@ -17,6 +18,6 @@ bun run start # Build a shareable macOS .dmg (arm64 by default) bun run dist:desktop:dmg -# Or from any project directory after publishing: -npx synara +# Or from any project directory after publishing @scientfactory/cli: +npx --package @scientfactory/cli scient ``` diff --git a/.docs/runtime-modes.md b/.docs/runtime-modes.md index 18416f641..03cdebf57 100644 --- a/.docs/runtime-modes.md +++ b/.docs/runtime-modes.md @@ -1,6 +1,6 @@ # Runtime modes -Synara has a global runtime mode switch in the chat toolbar: +Scient has a global runtime mode switch in the chat toolbar: - **Full access** (default): starts sessions with `approvalPolicy: never` and `sandboxMode: danger-full-access`. - **Supervised**: starts sessions with `approvalPolicy: on-request` and `sandboxMode: workspace-write`, then prompts in-app for command/file approvals. diff --git a/.docs/scripts.md b/.docs/scripts.md index 3ec06ae9d..05f560ec7 100644 --- a/.docs/scripts.md +++ b/.docs/scripts.md @@ -3,9 +3,9 @@ - `bun run dev` — Starts contracts, server, and web in `turbo watch` mode. - `bun run dev:server` — Starts just the WebSocket server (uses Bun TypeScript execution). - `bun run dev:web` — Starts just the Vite dev server for the web app. -- Dev commands default `SYNARA_HOME` to `~/.synara`, which keeps dev state under `~/.synara/dev`. +- Dev commands default `SCIENT_HOME` to `~/.scient` and mirror that value into the inherited `SYNARA_HOME` compatibility variable. - Override server CLI-equivalent flags from root dev commands with `--`, for example: - `bun run dev -- --home-dir ~/.synara-2` + `bun run dev -- --home-dir ~/.scient-2` - `bun run start` — Runs the production server (serves built web app as static files). - `bun run build` — Builds contracts, web app, and server through Turbo. - `bun run typecheck` — Strict TypeScript checks for all packages. @@ -19,9 +19,9 @@ ## Desktop `.dmg` packaging notes - Default build is unsigned/not notarized for local sharing. -- The DMG build uses `assets/macos-icon-1024.png` as the production app icon source. -- Desktop production windows load the bundled UI from `synara://app/index.html` (not a `127.0.0.1` document URL). -- Desktop packaging includes `apps/server/dist` (the `synara` backend) and starts it on loopback with an auth token for WebSocket/API traffic. +- The DMG build uses `assets/prod/scient-macos-1024.png` as the production app icon source. +- Desktop production windows load the bundled UI from `scient://app/index.html` (not a `127.0.0.1` document URL). +- Desktop packaging includes `apps/server/dist` (the Scient backend) and starts it on loopback with an auth token for WebSocket/API traffic. - Your tester can still open it on macOS by right-clicking the app and choosing **Open** on first launch. - To keep staging files for debugging package contents, run: `bun run dist:desktop:dmg -- --keep-stage` - To allow code-signing/notarization when configured in CI/secrets, add: `--signed`. @@ -33,10 +33,10 @@ ## Running multiple dev instances -Set `SYNARA_DEV_INSTANCE` to any value to deterministically shift all dev ports together. +Set the inherited `SYNARA_DEV_INSTANCE` compatibility variable to any value to deterministically shift all dev ports together. - Default ports: server `3773`, web `5733` - Shifted ports: `base + offset` (offset is hashed from `SYNARA_DEV_INSTANCE`) - Example: `SYNARA_DEV_INSTANCE=branch-a bun run dev:desktop` -If you want full control instead of hashing, set `SYNARA_PORT_OFFSET` to a numeric offset. +If you want full control instead of hashing, set the inherited `SYNARA_PORT_OFFSET` compatibility variable to a numeric offset. diff --git a/.docs/workspace-layout.md b/.docs/workspace-layout.md index 4639dd11d..05b499cf8 100644 --- a/.docs/workspace-layout.md +++ b/.docs/workspace-layout.md @@ -2,6 +2,6 @@ - `/apps/server`: Node.js WebSocket server. Wraps Codex app-server, serves the built web app, and opens the browser on start. - `/apps/web`: React + Vite UI. Session control, conversation, and provider event rendering. Connects to the server via WebSocket. -- `/apps/desktop`: Electron shell. Spawns a desktop-scoped `synara` backend process and loads the shared web app. +- `/apps/desktop`: Electron shell. Spawns the desktop-scoped `scient` backend process and loads the shared web app. - `/packages/contracts`: Shared effect/Schema schemas and TypeScript contracts for provider events, WebSocket protocol, and model/session types. - `/packages/shared`: Shared runtime utilities consumed by both server and web. Uses explicit subpath exports (e.g. `@synara/shared/git`, `@synara/shared/DrainableWorker`) — no barrel index. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4ad9ed00d..6cbe1cc41 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,7 @@ jobs: if: runner.os == 'Linux' run: node scripts/node-pty-smoke.mjs - - name: Verify Synara identity + - name: Verify Scient identity run: bun run brand:check - name: Format @@ -148,7 +148,7 @@ jobs: - name: Install dependencies run: bun install --frozen-lockfile --ignore-scripts - - name: Verify Synara identity + - name: Verify Scient identity run: bun run brand:check - name: Exercise release-only workflow steps diff --git a/.gitignore b/.gitignore index 6d696e8e3..54643f173 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,8 @@ release/ /.synara-*/ /.synara/ /.synara-*/ +/.scient/electron-dev +/.scient-*/ .idea/ apps/web/.playwright apps/web/playwright-report diff --git a/AGENTS.md b/AGENTS.md index 8f74b3f21..624e73b8e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -97,7 +97,7 @@ Reference usage: opening/closing a project and the sidebar sections in `apps/web ## Local Dev Instance Isolation - Never start the default `bun run dev` while another Scient instance is running unless the user explicitly wants shared ports/state. -- Use an isolated home dir and non-default ports when running alongside the user's own Synara instance, for example: `env -u SYNARA_AUTH_TOKEN SYNARA_PORT_OFFSET=3158 SYNARA_NO_BROWSER=1 bun run dev -- --home-dir ./.scient-pr84 --port 58090`. +- Use an isolated home dir and non-default ports when running alongside another desktop instance, for example: `env -u SYNARA_AUTH_TOKEN SYNARA_PORT_OFFSET=3158 SYNARA_NO_BROWSER=1 bun run dev -- --home-dir ./.scient-pr84 --port 58090`. - Always dry-run first when avoiding conflicts: `env -u SYNARA_AUTH_TOKEN SYNARA_PORT_OFFSET=3158 bun run dev -- --home-dir ./.scient-pr84 --port 58090 --dry-run`. - Unset `SYNARA_AUTH_TOKEN` for browser dev instances unless the web app is also configured to connect with that token. If auth is accidentally inherited, the browser WebSocket can be rejected and the UI will show no threads even though SQLite has projects/threads. - Check both server and web ports with `lsof -nP -iTCP: -sTCP:LISTEN`. A desktop app can bind `127.0.0.1:` while the dev server binds IPv6 `*:`, and `localhost` may still hit the wrong process. diff --git a/README.md b/README.md index 10a167808..ed98f00f3 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,6 @@ Scient is a local-first desktop workspace for working with the AI agents and sub It brings chats, terminals, browser previews, diffs, branches, provider sessions, and handoffs into one focused workspace so you can run agent work without juggling a dozen windows. -![Scient app showing parallel agent threads, terminal output, and project navigation](assets/prod/readme-screenshot.jpeg) - ## What it does - Use the AI accounts you already pay for: Claude Code, Codex, Antigravity, OpenCode, Cursor, Grok, Kilo Code, and Pi. diff --git a/apps/marketing/public/screenshot.jpeg b/apps/marketing/public/screenshot.jpeg deleted file mode 100644 index 5c31530d1..000000000 Binary files a/apps/marketing/public/screenshot.jpeg and /dev/null differ diff --git a/apps/marketing/src/pages/index.astro b/apps/marketing/src/pages/index.astro index c5ce7e0d3..e1fb5ce02 100644 --- a/apps/marketing/src/pages/index.astro +++ b/apps/marketing/src/pages/index.astro @@ -19,9 +19,6 @@ import { RELEASES_URL } from "../lib/releases"; Other platforms -
- Scient -