You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refresh docs accuracy, terminology, and roadmap status.
Align public docs and settings recovery copy with current UI labels, HTTP streaming behavior, npm/platform claims, and completed roadmap milestones for D1.5.
Co-authored-by: Cursor <cursoragent@cursor.com>
Desktop workspace for notes, specs, and project files — with a built-in editor and **OpenCode**-powered workspace agents. Built with [Tauri](https://tauri.app/) and [SvelteKit](https://kit.svelte.dev/).
3
+
Desktop workspace for notes, specs, and project files — with a built-in editor
4
+
and **OpenCode**-powered workspace sessions. Built with
5
+
[Tauri](https://tauri.app/) and [SvelteKit](https://kit.svelte.dev/).
4
6
5
7
> Under active development. APIs, settings, and on-disk formats may change without migration.
6
8
@@ -13,7 +15,7 @@ Desktop workspace for notes, specs, and project files — with a built-in editor
13
15
-**Version Control** — per-workspace git tab (history, branches, tags, changes, fetch/pull/push) via system `git`
14
16
-**Themes**, **multi-window**, **image** preview
15
17
-**Console** — resizable bottom panel with logs
16
-
-**Workspace agents** — sessions powered by [OpenCode](https://opencode.ai/) (tools, permissions, streaming)
18
+
-**Workspace sessions** — OpenCode-powered conversations with tools, permissions, and streaming
17
19
-**Chat (beta)** — experimental HTTP chat context, off by default; see [`docs/beta/`](./docs/beta/)
18
20
19
21
## Screenshots
@@ -27,14 +29,14 @@ Desktop workspace for notes, specs, and project files — with a built-in editor
27
29
-**Releases** — download macOS / Windows installers from [GitHub Releases](https://github.com/AlexeyPerov/spec-ops/releases) (published when a semver tag is pushed; see [CI releases](#ci-releases)).
28
30
-**From source** — see [Development](#development) below.
29
31
30
-
## Workspace agents (OpenCode)
32
+
## Workspace sessions (OpenCode)
31
33
32
34
SpecOps is the UI; **OpenCode** runs models, tools, and session logic. Configure providers and API keys in OpenCode — not in SpecOps HTTP settings.
| Linux | No published installers | Yes | Buildable with Tauri's Linux prerequisites, but not a supported release target |
134
+
135
+
The test workflow runs the Vitest suite on macOS, Windows, and Linux. The release
136
+
workflow publishes artifacts only for macOS and Windows; Tauri's `targets: "all"`
137
+
controls bundle formats for the current build host and does not add a Linux release job.
138
+
121
139
### CI releases
122
140
123
-
Pushing a semver tag (for example `v1.0.0`) triggers the [Release](.github/workflows/release.yml) workflow. It builds macOS (universal binary) and Windows installers and publishes them as assets on the GitHub release for that tag.
141
+
Pushing any tag beginning with `v` (for example `v1.0.0`) triggers the
142
+
[Release](.github/workflows/release.yml) workflow. It builds a universal macOS
143
+
bundle and Windows x64 installers and publishes them as assets on that GitHub release.
124
144
125
145
## Docs
126
146
127
147
| Doc | Audience |
128
148
| --- | --- |
129
149
|[docs/README.md](./docs/README.md)| Index — users vs contributors |
|[opencode-integration.md](./opencode-integration.md)| Workspace agents: first session, sidecar/URL, providers, troubleshooting |
10
+
|[opencode-integration.md](./opencode-integration.md)| Workspace sessions (OpenCode): first session, sidecar/URL, providers, troubleshooting |
11
11
|[beta/README.md](./beta/README.md)| Experimental features (opt-in) |
12
-
|[beta/chat-http-providers.md](./beta/chat-http-providers.md)| Chat (beta) HTTP providers — only if you enable **Settings → Dev → Chat (beta)**|
12
+
|[beta/chat-http-providers.md](./beta/chat-http-providers.md)| Chat (beta) HTTP providers — only if you turn on **Settings → Dev → Enable Chat (beta)**|
13
13
14
14
**Recommended AI path:** Open a workspace folder and use **Sessions** with OpenCode. Do not start with Chat (beta) unless you already need an OpenAI-compatible HTTP lane.
Copy file name to clipboardExpand all lines: docs/architecture.md
+31-10Lines changed: 31 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,10 @@ Unit tests are colocated as `*.test.ts` next to source. Run them from `app/` wit
25
25
26
26
### Module size conventions (M6)
27
27
28
-
Production modules should stay **≤500 lines** where practical; **≤600** is acceptable for cohesive UI shells (`+page.svelte`, `SettingsDialog.svelte`). Test files should stay **≤600 lines** and mirror the production module they cover.
28
+
Production modules should stay **≤500 lines** where practical; **≤600** is
29
+
acceptable for cohesive UI shells such as `+page.svelte` and
30
+
`SettingsView.svelte`. Test files should stay **≤600 lines** and mirror the
31
+
production module they cover.
29
32
30
33
When a file grows past those limits, split along existing domain boundaries and colocate new files next to the parent module:
31
34
@@ -101,7 +104,7 @@ File open/save flows go through `appState` and services (`fileSystem`, `openFile
101
104
- Threads persist under the app data dir (see [Persistence](#persistence)).
102
105
- Modes: **`ask`** and **`review`** (system prompts in `app/src/lib/ai/modes/builtins.ts`).
103
106
104
-
HTTP Chat (beta) provider integration is documented in [beta/chat-http-providers.md](./beta/chat-http-providers.md). Workspace agents use OpenCode — see [opencode-integration.md](./opencode-integration.md).
107
+
HTTP Chat (beta) provider integration is documented in [beta/chat-http-providers.md](./beta/chat-http-providers.md). Workspace sessions use OpenCode — see [opencode-integration.md](./opencode-integration.md).
105
108
106
109
## State layer
107
110
@@ -110,7 +113,7 @@ HTTP Chat (beta) provider integration is documented in [beta/chat-http-providers
110
113
Single source of truth for:
111
114
112
115
- Active context, documents, tabs, editor chrome (zoom, wrap, find/replace)
113
-
-**`AppSettingsState`** (including Connections/HTTP settings and in-memory API key)
116
+
-**`AppSettingsState`** (including HTTP provider settings and in-memory API key)
114
117
- Theme (builtin + custom), recent files
115
118
116
119
Mutations are methods on the exported store object (e.g. `openDocument`, `setProviderApiKey`, workspace close with dirty prompts).
@@ -199,20 +202,34 @@ Custom commands include `take_pending_opened_paths`, `sync_file_watcher_paths`,
Tab ids and sidebar labels live in **`SETTINGS_TABS`** / `buildSettingsSidebar` (`app/src/lib/services/settingsDialogUi.ts`). Treat that module as the source of truth for tab inventory — do not duplicate the full list here.
-**Dev** — **Enable Chat (beta)** master toggle and **Logs**; **Providers**, **Chat modes**, and **Debug Provider** tabs appear in this section only when `chatHttp.enabled`
Routing helpers: `editorRouting.ts` (file vs session vs view tabs), `workspaceAgentSession.ts` (session tab lifecycle).
217
234
218
235
Editor: CodeMirror via `EditorSurface.svelte` (Svelte 5 runes), language detection in `editorLanguage.ts`, optional minimap via `editor/editorMinimap.ts`.
0 commit comments