Skip to content

feat(cli): add Universal Canvas command - #321

Merged
graphite-app[bot] merged 1 commit into
mainfrom
feat/cli-create-canvas
Sep 6, 2026
Merged

graphite-app[bot] merged 1 commit into
mainfrom
feat/cli-create-canvas

Conversation

@anandpant

@anandpant anandpant commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a noninteractive sketchi canvas command for typed CanvasSpec file, stdin, or inline JSON input
  • validate the public create-canvas request/response with shared repository schemas, preserve the returned diagram locally, and export PNG, Excalidraw, or scene consistently with generate
  • preserve submitted diagram identity, distinguish invalid-canvas rejections from server failures, and report CanvasSpec ID validation at spec.diagramId
  • document the production endpoint, preview/testing override, machine-readable output, and supported canvas workflows
  • cover success, malformed input/response, identity drift, typed rejection, server and network failures, storage, help, and built-CLI file/stdin paths
  • register the CLI HTTP Promise boundary in the project-graph guard and add a minor changeset for @sketchi/cli

Proof

  • pnpm run test:tools (5 files, 93 tests)
  • pnpm nx test sketchi-cli (21 files, 198 tests)
  • pnpm nx typecheck sketchi-cli
  • pnpm nx build sketchi-cli
  • pnpm nx run-many -t typecheck,test,build
  • pnpm nx build-storybook diagram-ui

The full required proof predates the review remediation; test:tools and the affected CLI typecheck, test, and build were rerun after remediation. Live production proof was intentionally not run before merge.

Copy link
Copy Markdown
Collaborator Author

How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • merge - adds this PR to the back of the merge queue
  • fast - for urgent changes, fast-track this PR to the front of the merge queue

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Sketchi Icons Preview

Status: deleted

Preview Worker cleanup has completed.

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Sketchi Web Preview

Status: deleted

Preview Worker cleanup has completed.

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Sketchi Excalidraw Workspace Preview

Status: deleted

  • Surface: internal preview; not linked from public navigation
  • Project: excalidraw
  • Worker identity: sketchi-excalidraw
  • Route policy: internal canvas workspace; no public product domain
  • Preview Worker: sketchi-excalidraw-pr-321
  • Commit: 641849e8dba0
  • Workflow run: https://github.com/shpitdev/sketchi/actions/runs/34001600644

Preview Worker cleanup has completed.

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Sketchi Eval Harness Preview

Status: deleted

  • Surface: internal preview; not linked from public navigation
  • Project: eval-harness
  • Worker identity: sketchi-playground
  • Route policy: internal eval harness; no public product domain
  • Preview Worker: sketchi-playground-pr-321
  • Commit: 641849e8dba0
  • Workflow run: https://github.com/shpitdev/sketchi/actions/runs/34001600644

Preview Worker cleanup has completed.

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Sketchi Playground / Studio Preview

Status: deleted

  • Surface: public product preview
  • Project: playground
  • Worker identity: sketchi-studio
  • Route policy: playground.sketchi.app product surface; authenticated Studio remains unexposed
  • Preview Worker: sketchi-studio-pr-321
  • Commit: 641849e8dba0
  • Workflow run: https://github.com/shpitdev/sketchi/actions/runs/34001600644

Preview Worker cleanup has completed.

@graphite-app

graphite-app Bot commented Sep 6, 2026

Copy link
Copy Markdown

Merge activity

## Summary

- add a noninteractive `sketchi canvas` command for typed CanvasSpec file, stdin, or inline JSON input
- validate the public create-canvas request/response with shared repository schemas, preserve the returned diagram locally, and export PNG, Excalidraw, or scene consistently with `generate`
- preserve submitted diagram identity, distinguish invalid-canvas rejections from server failures, and report CanvasSpec ID validation at `spec.diagramId`
- document the production endpoint, preview/testing override, machine-readable output, and supported canvas workflows
- cover success, malformed input/response, identity drift, typed rejection, server and network failures, storage, help, and built-CLI file/stdin paths
- register the CLI HTTP Promise boundary in the project-graph guard and add a minor changeset for `@sketchi/cli`

## Proof

- `pnpm run test:tools` (5 files, 93 tests)
- `pnpm nx test sketchi-cli` (21 files, 198 tests)
- `pnpm nx typecheck sketchi-cli`
- `pnpm nx build sketchi-cli`
- `pnpm nx run-many -t typecheck,test,build`
- `pnpm nx build-storybook diagram-ui`

The full required proof predates the review remediation; `test:tools` and the affected CLI typecheck, test, and build were rerun after remediation. Live production proof was intentionally not run before merge.
@graphite-app
graphite-app Bot merged commit 641849e into main Sep 6, 2026
10 checks passed
@graphite-app
graphite-app Bot deleted the feat/cli-create-canvas branch September 6, 2026 00:33
@graphite-app
graphite-app Bot deployed to production September 6, 2026 00:33 Active
@graphite-app
graphite-app Bot deployed to production September 6, 2026 00:33 Active
@graphite-app
graphite-app Bot deployed to production September 6, 2026 00:33 Active
@graphite-app
graphite-app Bot deployed to production September 6, 2026 00:33 Active
@graphite-app
graphite-app Bot deployed to production September 6, 2026 00:33 Active
@github-actions github-actions Bot mentioned this pull request Sep 6, 2026
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