Skip to content

Canvas pet layer#388

Open
PaulHorn wants to merge 69 commits into
mainfrom
pet-layer
Open

Canvas pet layer#388
PaulHorn wants to merge 69 commits into
mainfrom
pet-layer

Conversation

@PaulHorn

Copy link
Copy Markdown
Contributor

Re-opens the Canvas pet layer work by @Anton-Horn.

The original PR #379 was accidentally merged to main during a batch merge and then reverted (#386). This branch (pet-layer) was restored at its original tip 09f4458, so all of @Anton-Horn's commits are intact. Continue the work here.

cc @Anton-Horn

Anton-Horn and others added 30 commits June 12, 2026 16:28
…orktrees

- Collapse the two pet model prefs into one petModel picker (Settings -> Canvas
  Pet) shared by observer and executor; drop the Providers pet section.
- Add an autoObserve toggle persisted in .cate/pet.json (defaults on for older
  files); clicking the idle pet always forces an observe regardless.
- Prepare the isolated worktree up-front in the controller (no-op for non-git
  repos), so create_worktree drops out of the tool surface.
- Replace blocking wait_for_terminal with create_terminal/send_keys that wait by
  default and take background:true to fan out across terminals.
- Add a remark tool for ephemeral pet speech bubbles; inject workspace snapshot
  into the observe prompt so the observer doesn't burn calls rediscovering state.
- Fresh-session executor continuation loop with continuation/wake caps to bound
  cost and recover stalls.
- Pet avatar: idle float/hop animation, canvas-area corner docking, world avatar
  slides in and tracks zoom.
Adapt the Cate Agent work to main's companion->runtime rename (#387):
keep the pet-layer features (agent-dir variant for isolated Cate Agent
transcripts, local-runtime retryLocal recovery, the CateAgentAvatar) and
rewire them onto the runtime naming and APIs.
…attention glow + notification dot instead of auto-open
PaulHorn added 30 commits June 15, 2026 22:11
…terminals, per-card stop/edit/review (no panel background)
…reconcile orphaned runs on restart; epoch-guard editJob restart race; solid job-card bg; edit placeholder; remove dead currentTodoId
…sting); run prompt in chosen worktree; terminal glow uses worktree color (theme accent when none)
…ed in worktree color, name on hover (+ track the new selector file)
…), collapses to icon + expands on hover, controls bottom-anchored (don't move)
… tooltip (no inline expand → no flicker/squish)
… pinned left, only padding/width animate — no flicker)
…vered worktree had no record, so color change silently no-op'd and never persisted)
…-line stays centered), derived from measured height
…k starting a second job on an occupied target
…nt + stop re-acquiring) so terminals don't go blank/white under context exhaustion
…e DOM renderer instead of failing to a blank white pane
…y worktrees, resume

The executor now acts in two explicit modes, chosen per task:
- CANVAS & TERMINAL MANAGEMENT done DIRECTLY with its own tools (no CLI):
  list_terminals / list_panels / close_panel / focus_panel — so "close my
  terminals", "bring the editor forward", etc. happen immediately.
- CODE WORK still delegated to coding-agent CLIs in visible terminals.

Add an `answer` tool: deliver a user-facing text result and settle a
question / read-only / management job straight to `done` (no review/merge).
The job card renders the kept, selectable output with a Dismiss action.

Create the isolated worktree LAZILY on the first create_terminal (named from
the executor's short derived topic) instead of up-front, so a pure question or
management job never mints a throwaway branch.

Resume jobs cut short by an app restart: reconcileOrphans marks them
`interrupted`, and the card offers Continue (continueJob → fresh re-grounded
executor session) alongside Discard.
…test

terminalDom now statically imports WebglAddon (the live-context cap / DOM
fallback work), so the dispose-during-creation test — which dynamically imports
the real terminalLifecycle → terminalDom — pulled the addon's browser-only UMD
wrapper into Node and crashed with `self is not defined`. Stub it like the five
sibling xterm addons already mocked here (and like every renderer test that
touches this module graph).
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