Dual-model coding workspace: two Code Puppy sessions flanking a Monaco editor, collaborating on the same project in real time.
Each side panel runs its own Code Puppy session backed by its own model. Pick the model per panel from a dropdown — e.g. DeepSeek on the left, Kimi on the right. When either agent writes to a file, the editor in the middle automatically focuses (or opens) that file so a human can audit the change as it lands. Selected text can be handed off from one panel to the other with a single click; the prompt is wrapped (verify-this-draft going left→right, execute-this-plan going right→left) and pasted into the receiving session.
- Rust 1.77+
- Node.js 22+
- uv and
code-puppyinstalled viauv tool install code-puppy==0.0.550(or run on demand withuvx code-puppy -i) - OpenRouter API key configured in Code Puppy
v1: Windows + Linux. macOS unsupported.
Instance model: one workspace per app window. Renaming/moving the workspace folder orphans snapshot history (the shadow git store is keyed by workspace path hash).
npm install
npm run tauri:devOn Windows: run.bat (probes Python, sets DOGSLED_CODE_PUPPY / DOGSLED_PYTHON, runs the same tauri:dev).
npm run tauri:buildcd src-tauri
cargo testGolden tests live in src-tauri/tests/: parser_golden.rs (VT100 → agent-state replay against fixtures) and pty_smoke.rs (portable-pty spawn sanity check). Module-level tests are alongside the code (e.g. session/mod.rs covers fork-on-other-panel).
- Left / Right panels — xterm.js terminal hosting a Code Puppy PTY. Per-panel model + persona (name, emoji, accent) configured in
src-tauri/dogsled.toml. - Center editor — Monaco with file tree, tabs, toolbar (Save / Save As / New File / New Folder / Handoff), context menus on tabs and tree, and keyboard shortcuts (Ctrl+S/N/W/Shift-S/Shift-N, F2 rename, Delete).
- Auto-audit — Rust file watcher emits
file-changedevents with kind (Create/Modify/Delete/Rename); the editor focuses-or-opens the affected file so the human sees agent writes immediately. - Snapshots — per-workspace bare git repo (libgit2) in app data, separate from the project's own
.git. Step records canrestore_to_stepto roll the workspace back. - Sessions — fork on cross-panel open; child resumes Code Puppy memory via
--resume {.pkl}.
- docs/onboarding.md — bring a fresh LLM session up to speed in one read.
- docs/spike-code-puppy.md — Code Puppy integration findings (CLI flags,
.pklcontinuity, TUI state detection). - docs/plan-center-panel-ui.md — center-panel UI plan (now mostly implemented).