agent-orchestrator/docs
Ashish Huddar ca0b7ec2ce feat: add interactive canvas artifacts to session detail view
Adds Cursor-style "canvases" — interactive artifacts (markdown / diff /
table / stats) rendered in a right-side rail next to the session terminal
so structured agent output (diffs, test results, stats) doesn't get buried
in scrollback.

Architecture is plugin-friendly without inventing a new plugin slot:
agents emit JSON files at `{workspacePath}/.ao/canvases/{id}.json`, core
validates and serves them via `GET /api/sessions/[id]/canvases`, and the
web layer ships a fixed renderer set so third parties can produce data
without shipping React components into the supervisor dashboard. The
`CanvasProducer` interface is declared for v0.2 plugin invocation but not
yet called.

v0.1 also synthesizes a `core-git-diff` canvas from `git diff` against
the merge-base with `origin/<default>` (with local-ref + uncommitted +
untracked-file fallbacks), so the feature is useful for every session
even before any agent integration.

Hardened across 10 codex review passes:
- working-tree diffs (not just committed changes)
- merge-base against origin/<base>, not stale local ref
- untracked files included with file/byte/lstat caps
- `.ao/` files excluded from synthesized diffs
- reserved `core-` id prefix for synthesized canvases
- per-effect cancellation + sequence-guarded poll responses
- lstat (not stat) on canvas files to reject FIFO/symlink bypass
- partial-stdout recovery on oversized diffs
- session.projectId (not prefix-matching) for project resolution
- empty canvases for sessions without a workspacePath
- diff parser preserves `+++`/`---` content lines, strips marker prefix
- size caps: 256 KB per canvas, 32 canvases per session, 200 files /
  5000 lines per diff, 50 untracked files / 4 MB budget

Tests: 17 core + 8 web, all passing. Docs at docs/canvases.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 17:01:31 +05:30
..
assets Add Composio banner to README 2026-03-03 22:43:23 +05:30
design fix(core): address lifecycle review feedback 2026-04-15 12:41:06 +05:30
specs fix(web): runtime terminal port resolution + project-id hardening 2026-03-28 19:23:15 +05:30
ARCHITECTURE.md refactor(web): replace SSE with WebSocket polling for session updates (#1259) 2026-04-29 13:05:04 -07:00
CLI.md fix: always enable filesystem browsing (#1596) (#1599) 2026-05-01 12:51:43 +05:30
DEVELOPMENT.md feat(plugin): implement kimicode agent plugin (#1390) 2026-05-01 14:11:30 +05:30
PLUGIN_SPEC.md chore: rename @composio scope to @aoagents across all packages 2026-04-09 15:59:33 +00:00
SECURITY-AUDIT-SUMMARY.md fix: migrate to hash-based project isolation architecture 2026-02-18 00:19:55 +05:30
canvases.md feat: add interactive canvas artifacts to session detail view 2026-05-05 17:01:31 +05:30
design-cli-redesign-analysis.html refactor: remove --decompose feature entirely 2026-04-10 13:02:52 +05:30
design-npm-global-install-fixes.html docs: sync install-flow design doc with current start/preflight behavior 2026-03-26 16:05:59 +05:30
design-onboarding-improvements.html Expand design doc section on ao-web npm publishing 2026-03-14 19:04:57 +05:30
observability.md feat(web): copy observability debug bundle from dashboard (#1320) 2026-04-21 11:35:43 +05:30
openclaw-plugin-setup.md fix: restore GitHub repo URLs to ComposioHQ/agent-orchestrator — only npm scope changed 2026-04-09 16:00:32 +00:00
opencode-workflows-spec.md feat (core): inject worker prompt as instructions file (#1302) 2026-04-26 15:44:39 +05:30
state-machine-stage2-evidence-recovery-plan.md docs: add stage 2 evidence and recovery plan (#95) 2026-04-16 22:22:23 +05:30