snapkitty
compilers
c
python
nasm
SNAPKITTYWEST's picture
Sync with GitHub, license metadata from LICENSE files, commercial license notice
e547dfd verified
|
Raw History Blame Contribute Delete
2.12 kB
# Desktop development guide
The repository contains a native Windows client, an Electron workbench, and BEAM-style WebAssembly sources. Build them independently.
## Native Windows client
The [CMake project](../ide/CMakeLists.txt) requires CMake 3.24+, Windows, a C17/C++17 toolchain, and Windows SDK libraries including Direct2D/DirectWrite. From the repository root:
```powershell
cmake -S ide -B ide/build -G "Visual Studio 17 2022"
cmake --build ide/build --config Release
```
The build definition is in `ide/`, not `ide/native/`. The native source tree includes editor buffers/views, ConPTY, LSP, chat transport, Git operations, and graphics. Source inspection is not a successful build; this documentation update did not compile the IDE.
For bridge behavior and startup constraints, read [ASR and bridge](ASR_AND_BRIDGE.md).
## Electron workbench
The package is [ide/desktop/package.json](../ide/desktop/package.json). From a Node/npm environment compatible with that package's dependencies:
```bash
cd ide/desktop
npm ci
npm run typecheck
npm test
npm run desktop
```
`desktop` runs the TypeScript/Vite build and then Electron. TypeScript emits to `dist/`; Vite targets `_site/`. The main process derives the workspace root from its package location, so no user-specific absolute path is required.
The Vite configuration names `desktop/index.html` as its renderer input, which is present in the inspected checkout. A complete desktop build was not run during this documentation update.
Provider credentials are encrypted using Electron safeStorage, and persistence rejects unavailable encryption. Bridge-backed tools use `SOVEREIGN_ENGINE_BRIDGE_URL` or `http://127.0.0.1:19000`. The desktop's automatic tool path rejects missing risk metadata or risk classes greater than 2. That client check does not protect direct callers of the HTTP service.
## BEAM-style WebAssembly
[ide/beam/](../ide/beam/) is a separate source collection. Do not infer that it replaces either desktop implementation or has been integrated into their builds.
For current validation boundaries, see [Testing](TESTING.md).