源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# Blank-slate test profiles
|
||||
|
||||
Every desktop build (public, cloud, enterprise) accepts a `--blank-slate` CLI
|
||||
flag that launches the app as if on a brand-new machine, without touching the
|
||||
installed profile.
|
||||
|
||||
## Usage
|
||||
|
||||
Packaged app (macOS):
|
||||
|
||||
```bash
|
||||
open -a "OpenWork Enterprise" --args --blank-slate
|
||||
# or any flavor:
|
||||
open -a "OpenWork" --args --blank-slate
|
||||
```
|
||||
|
||||
Direct binary (useful for CDP-driven testing):
|
||||
|
||||
```bash
|
||||
OPENWORK_ELECTRON_REMOTE_DEBUG_PORT=9898 \
|
||||
"dist-electron/mac-arm64/OpenWork Enterprise.app/Contents/MacOS/OpenWork Enterprise" --blank-slate
|
||||
```
|
||||
|
||||
Dev mode:
|
||||
|
||||
```bash
|
||||
pnpm dev:electron -- --blank-slate
|
||||
```
|
||||
|
||||
## What it does
|
||||
|
||||
Each launch creates one unique temporary root (`$TMPDIR/openwork-test-profile-*`)
|
||||
and redirects every persisted path into it before any other module loads:
|
||||
|
||||
- Electron `userData` and `home`
|
||||
- `HOME`/`USERPROFILE`, `XDG_CONFIG_HOME`/`DATA`/`CACHE`/`STATE`,
|
||||
`APPDATA`/`LOCALAPPDATA`
|
||||
- desktop bootstrap (`OPENWORK_DESKTOP_BOOTSTRAP_PATH`) — an enterprise build
|
||||
therefore starts at the activation gate, not an inherited control plane
|
||||
- OpenWork server config, env store, token store, runtime DB, data dir
|
||||
- OpenCode config dir and database
|
||||
|
||||
It also:
|
||||
|
||||
- enables Chromium's mock keychain so the real login keychain is never touched
|
||||
- skips `openwork://` protocol registration, Windows shortcut writes, brand
|
||||
icon/name persistence, and Linux desktop integration
|
||||
- suffixes the window title with `Test profile`
|
||||
- spawns a detached cleanup worker on quit that removes the whole temporary
|
||||
root after the app exits
|
||||
|
||||
A normal launch (no flag) is byte-for-byte unchanged. Packaged builds keep
|
||||
their immutable flavor; the flag never alters sign-in or activation policy.
|
||||
|
||||
## Source
|
||||
|
||||
- `apps/desktop/electron/blank-slate-profile.mjs` — profile resolution (applied
|
||||
as the first import in `main.mjs`)
|
||||
- `apps/desktop/electron/blank-slate-cleanup.mjs` — post-exit cleanup worker
|
||||
- `evals/specs/desktop-blank-slate-profile.test.ts` — testkit proof
|
||||
Reference in New Issue
Block a user