Skip to content

rename canvas → program - #562

Merged
edwin-zvs merged 1 commit into
mainfrom
rename-canvas-to-program
Jun 28, 2026
Merged

rename canvas → program#562
edwin-zvs merged 1 commit into
mainfrom
rename-canvas-to-program

Conversation

@edwin-zvs

Copy link
Copy Markdown
Contributor

Renames the per-session orchestration surface from canvas to program across the entire stack. Pure rename — no behavior change beyond the names.

What changed

  • MCP tools: construct_canvas_*construct_program_* (get / list_templates / edit / update / execute)
  • Wire protocol: canvas.* IPC methods → program.*; protocol types Canvas*Program*
  • CLI: construct canvas <get|set|edit|run|templates>construct program …
  • Client: canvas_get/update/edit/execute/templatesprogram_*
  • TUI: title-glyph tooltip ("Chat mode ↔ Program mode"), "Run program", onboarding text, palette/keymap labels (C-x Space opens program)
  • Agent contract: program_run context field, CONSTRUCT_PROGRAM_RUN_CONTEXT_FILE, system-prompt prose
  • Specs: 0041–0050 renamed (files + content); incidental mentions in 0019/0040/0044–0047 updated

Data migration

On-disk artifacts move to program.md / program.json / program-revisions.jsonl / program-run-context.json and data/program/templates. A lazy, idempotent migration renames any surviving legacy canvas.* files to their program.* counterparts on first read — existing sessions keep their content with no manual steps and no data loss.

Deliberately untouched

The 16 canvas references in index.html and 9 in web_smoke.rs are real HTML <canvas> elements (xterm terminal screen + mini-matrix rain), unrelated to this feature — excluded from the rename. Vendored xterm.* and .bak files also excluded.

Verification

  • cargo build — green (only pre-existing open_url unused-Result warnings)
  • cargo test for protocol / daemon / cli / client / mcp — 442 passed; the lone failure was the known pty_render timing benchmark flaking under concurrent build load, confirmed passing in isolation
  • e2e test targets (incl. the excluded web_smoke.rs) compile against the renamed symbols

🤖 Generated with Claude Code

Rename the per-session orchestration "canvas" to "program" across the
whole surface: MCP tools (construct_program_*), wire-protocol methods
(program.*), CLI verbs (construct program ...), protocol types (Program*),
client methods, TUI labels/tooltips, the autonomous run contract, and
specs 0041–0050 (files + content).

On-disk artifacts move from canvas.{md,json}, canvas-revisions.jsonl,
canvas-run-context.json and data/canvas/templates to their program.*
counterparts, with a lazy, idempotent migration on first read so existing
sessions keep their content (no manual steps, no data loss).

Vendored xterm assets and the mini-matrix <canvas> element (index.html,
web_smoke.rs) are genuine HTML canvases unrelated to this feature and are
intentionally left untouched.
@edwin-zvs
edwin-zvs merged commit bb7fac5 into main Jun 28, 2026
1 check 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.

1 participant