Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
node_modules
.git
.herdr-canvas
.artifacts
*.log
.DS_Store
.agents
.env
.env.*
canvases
artifacts
e2e/*.png
*.sqlite*
coverage
dist
*.tgz

.herdr-canvas
canvases
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ jobs:
- run: bun run test:mcp-ui
- name: Test configured browser plugin in workerd
run: |
CANVAS_PLUGINS_CONFIG=src/test/plugins/config.ts bun run build:cloudflare-compiler
CANVAS_PLUGIN_TEST=1 bun test cloudflare/compiler.test.ts --test-name-pattern 'deployment browser plugin' --timeout 60000
ARTIFACTS_PLUGINS_CONFIG=src/test/plugins/config.ts bun run build:cloudflare-compiler
ARTIFACTS_PLUGIN_TEST=1 bun test cloudflare/compiler.test.ts --test-name-pattern 'deployment browser plugin' --timeout 60000
# Rebuild the default deployment before the normal runtime and package checks.
- run: bun run test:cloudflare
- run: bun run typecheck:cloudflare
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ concurrency:

jobs:
package:
if: github.repository == 'sidequery/canvas' && github.ref == 'refs/heads/main'
if: github.repository == 'sidequery/artifacts' && github.ref == 'refs/heads/main'
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
Expand All @@ -31,23 +31,23 @@ jobs:
env:
RELEASE_VERSION: ${{ inputs.version }}
run: |
bun -e 'const p = await Bun.file("package.json").json(); if (p.name !== "@sidequery/canvas" || p.version !== process.env.RELEASE_VERSION) throw new Error("Release input must match @sidequery/canvas package.json version");'
bun -e 'const p = await Bun.file("package.json").json(); if (p.name !== "@sidequery/artifacts" || p.version !== process.env.RELEASE_VERSION) throw new Error("Release input must match @sidequery/artifacts package.json version");'
- run: bun install --frozen-lockfile
- run: bun run typecheck
- run: bun run test
- run: bun run build:package
- run: bun run typecheck:cloudflare
- name: Pack once
run: bun pm pack --ignore-scripts --filename "$RUNNER_TEMP/canvas.tgz"
run: bun pm pack --ignore-scripts --filename "$RUNNER_TEMP/artifacts.tgz"
- name: Test release archive including native server persistence
env:
CANVAS_PACKAGE_ARCHIVE: ${{ runner.temp }}/canvas.tgz
ARTIFACTS_PACKAGE_ARCHIVE: ${{ runner.temp }}/artifacts.tgz
CELLD_PACKAGE_INTEGRATION: '1'
run: bun test scripts/package.integration.test.ts --timeout 360000
- uses: actions/upload-artifact@v4
with:
name: npm-package
path: ${{ runner.temp }}/canvas.tgz
path: ${{ runner.temp }}/artifacts.tgz
if-no-files-found: error
retention-days: 7

Expand All @@ -68,4 +68,4 @@ jobs:
name: npm-package
path: release
# npm CLI performs the OIDC exchange. No NPM_TOKEN or NODE_AUTH_TOKEN.
- run: npm publish ./release/canvas.tgz --access public --ignore-scripts
- run: npm publish ./release/artifacts.tgz --access public --ignore-scripts
11 changes: 8 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
node_modules/
.herdr-canvas/
.artifacts/
*.log
.DS_Store
.agents/worklog.md

# Local artifacts and state; keep reusable samples in examples/.
/canvases/
*.canvas.data.json
/artifacts/
*.artifact.data.json
*.sqlite
*.sqlite-shm
*.sqlite-wal
Expand All @@ -24,3 +24,8 @@ node_modules/
.celld/
/wrangler.celld.jsonc
*.tgz

# Compatibility: keep existing local Canvas files and state ignored.
.herdr-canvas/
/canvases/
*.canvas.data.json
8 changes: 4 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV SHELL=/bin/bash
ENV TERM=xterm-256color
ENV HERDR_E2E=1
ENV HERDR_SESSION=canvas-e2e
ENV HERDR_SESSION=artifact-e2e
ENV PATH="/usr/local/bin:${PATH}"

RUN apt-get update && apt-get install -y --no-install-recommends \
Expand All @@ -27,7 +27,7 @@ RUN curl -fsSL https://herdr.dev/install.sh | sh

RUN install -m 0755 /root/.bun/bin/bun /usr/local/bin/bun \
&& install -m 0755 /root/.local/bin/herdr /usr/local/bin/herdr \
&& useradd --create-home --shell /bin/bash canvas
&& useradd --create-home --shell /bin/bash artifact

RUN curl -fsSL https://terminal-browser.sh/install \
| XDG_DATA_HOME=/opt XDG_BIN_HOME=/usr/local/bin AGENT_SKILLS_HOME=/tmp/terminal-browser-skills TERMINAL_BROWSER_SKIP_EDITOR_SETUP=1 bash
Expand All @@ -41,7 +41,7 @@ COPY skills ./skills

RUN bun install --frozen-lockfile

ENV HOME=/home/canvas
USER canvas
ENV HOME=/home/artifact
USER artifact

CMD ["bun", "e2e/inside.ts"]
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2026 Canvas contributors
Copyright (c) 2026 Artifacts contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading
Loading