Skip to content

Integrate companion desktop pets and sandbox fix for v1.0.7 - #132

Merged
shaohaozhi286 merged 4 commits into
masterfrom
claude/release-v1.0.7-content
Oct 15, 2026
Merged

shaohaozhi286 merged 4 commits into
masterfrom
claude/release-v1.0.7-content

Conversation

@shaohaozhi286

Copy link
Copy Markdown
Collaborator

Integration for the v1.0.7 release.

  • Codex Mini-style companion desktop pets (Clippy, Rover, Whale Girl): idle behaviour, hover/click/drag reactions, session cards (/api/desktop-office activities, activity reply), right-click pet switching and keep-on-top, double-click activates the main window, transcript font on cards, Whale Girl edge docking with Codex-drawn peek frames.
  • Merged worktree shz_vide/ecstatic-feistel-a3d8eb: sandbox deny checks compare canonical paths (junction/symlink alias bypass).

Validation on this branch: pnpm test (0 failures), pnpm build, full C++ unit suite (6363 passed), test-classic-desktop-pets.mjs (Windows + macOS bridge), test-desktop-office.mjs, test-virtual-office-preferences.mjs, git diff --check. The macOS host (desktop_pet_mac.mm) is not compiled locally.

Grants and the "allow only this directory" suggestion compared lexical
paths against canonical deny entries. A request for a not-yet-existing
directory reached through a junction or symlink alias of the home
directory (C:\Users\x -> N:\Users\x) slipped past the deny list, and the
deeper writable root then made e.g. ~/.ssh/newdir writable.

- denied_by canonicalizes the checked path the same way resolve_access
  does; SandboxPolicy::is_denied exposes it and suggested_write_root uses
  it instead of lexical comparisons.
- Two tests built policies from drive-less /work paths. On Windows those
  resolve against the current drive, so they failed on machines that have
  a \work directory there (C:\work here). They now canonicalize entries
  like make_sandbox_policy does.
- Add alias regression tests (junction on Windows, symlink on POSIX).
Desktop pets can now be Clippy, Rover or Whale Girl besides the virtual
office, chosen in Settings or from the pet's right-click menu.

- Behaviour engine (assets/desktop_pet/classic_pet.js) follows the Codex
  Mini pet: idle loop that never freezes plus random preset actions, hover
  jump, drag direction, greeting, sleep/wake, and state reactions. The
  system reduce-motion preference is ignored on purpose (remote desktop
  sessions turn it on whenever window animations are off).
- Session cards like Mini: running, waiting, failed and unread finished
  main sessions stack into one card, expand on click, open the session,
  stop a turn or mark a result read. Nothing is shown without activity.
  /api/desktop-office gains `activities`; the activity snapshot keeps the
  start of the latest reply (`reply`), read back from the transcript after
  a daemon restart.
- No toolbar on the companion pets: the native menu gains a "switch pet"
  submenu and "keep on top". Double-clicking any pet, office included,
  brings the main window forward.
- Card text uses the transcript body font and size from the main window.
- Whale Girl docks to the left/right screen edge and peeks in (Codex-drawn
  frames, blinking); native hosts report drag direction and dock side.
@shaohaozhi286
shaohaozhi286 merged commit 009d5d0 into master Oct 15, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants