Skip to content

Migrate to stable Calcit 0.29 and typed WebGPU APIs - #1

Merged
tiye merged 1 commit into
mainfrom
migrate/calcit-029-stable
Oct 11, 2026
Merged

tiye merged 1 commit into
mainfrom
migrate/calcit-029-stable

Conversation

@tiye

@tiye tiye commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Upgrade paired Calcit/procs to stable 0.29.0 and use published Lagopus 0.5.10, memof 0.0.37, quaternion 0.2.11 (no main/hash dependencies).
  • Recover canonical runnable Snapshot using the official CLI bridge and revision-guarded edits; retire compact.cirru only after compiler/build/browser acceptance. Generated js-out/dist stay untracked.
  • Structured component, canvas, callback and Unit contracts; migrate get-env, case-default/tag-match/watch forms and JS nullish reload semantics. Preserve tab/state behavior and caching using Lagopus's checked memo-object adapter. The one state-cursor assert is guarded by list?/every? tag? at runtime, not an unchecked gate workaround.
  • Reuse existing typed browser/GPU/runtime adapters. Bottom-tip and error-message normalization are two small declared browser FFI bindings, with real String conversion rather than an unchecked string cast.
  • CI checks strict Caps graph, exact paired toolchain, immutable lock, canonical Snapshot, all definitions and complete public namespaces.
  • Frontend COS/CDN via cos-upload-action v1.2.0 built-in verification; retain original server destination. PRs never upload production assets. Current-main check prevents stale production uploads. No extra verification scripts or concurrently.

Acceptance

  • Strict check: 65 passed, 0 failed/blocked/cascaded (includes reachable dependency definitions).
  • Public namespaces: 15 selected/passed, complete.
  • Deprecated calls: 0; static dynamic-method findings: 0.
  • Caps --strict --ci and caps verify --toolchain passed; yarn install --immutable and production build passed (index-CmMTYvnq.js).
  • Real WebGPU browser: initial cube rendered, purple tab hides cube, green tab restores it; no runtime errors. Final rebuilt page title verified.
  • Remaining type debt: 4 unresolved slots in 3 definitions (open historical state map), not claimed eliminated.
  • Production credentials are inherited from organization secrets; actual production upload/deployment must still be accepted after merge.

Summary by CodeRabbit

  • Updates
    • The app is now presented as Syntax Cards, with a WebGPU-rendered cube shown when the Cube tab is selected. Other tab selections display an empty view.
    • Reloads now provide a status message indicating success or reporting build errors.
  • Documentation
    • Project documentation now describes the app, development workflow, and deployment process.

@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

WebGPU-Art is on CodeRabbit Free, which includes PR summaries. Ask your admin to upgrade for code reviews.

  • Ask an admin to upgrade

Open in CodeRabbit

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Free
  • Run ID: 31a4b3b8-f4ed-4fcc-aa62-951feb877c74

📥 Commits

Reviewing files that changed from the base of the PR and between aed5f28 and ee813ad.


⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock

📒 Files selected for processing (10)
  • .github/workflows/upload.yaml
  • .gitignore
  • .yarnrc.yml
  • README.md
  • calcit.cirru
  • compact.cirru
  • deps.cirru
  • index.html
  • package.json
  • vite.config.mjs

💤 Files with no reviewable changes (1)
  • compact.cirru

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.



Walkthrough

The application is rewritten for the current Calcit code-entry format and Lagopus runtime APIs. The repository adds pinned build tooling and CI checks. Production asset uploads and rsync deployment run only when a main-branch workflow matches the current main revision.

Changes

Syntax Cards application and delivery

Layer / File(s) Summary
Calcit application migration
calcit.cirru, compact.cirru, deps.cirru, README.md, index.html
The app definitions move to the current Calcit code-entry format and use Lagopus GPU and runtime APIs. Dispatch validates state cursors and tab values. Reload handling displays success or error status. Project metadata, dependencies, and titles are updated.
Build toolchain and validation
.github/workflows/upload.yaml, .gitignore, .yarnrc.yml, README.md, package.json, vite.config.mjs
The repository pins Calcit, Yarn, and package versions, and adds compile, development, and build scripts. CI installs dependencies immutably, verifies the toolchain, checks Calcit formatting and definitions, and builds with an event-specific public base URL.
Revision-gated production publishing
.github/workflows/upload.yaml, README.md
For main pushes, the workflow compares the run SHA with the current main SHA. Only a matching run uploads and verifies frontend assets in COS and runs the configured rsync deployment. The README describes PR and main deployment behavior and lists required secrets.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Actions as GitHub Actions
  participant Vite as Vite build
  participant Main as main branch
  participant COS
  participant Server as rsync destination
  Actions->>Vite: build with public base URL
  Actions->>Main: query current main SHA
  alt SHA matches GITHUB_SHA
    Actions->>COS: upload and verify frontend assets
    Actions->>Server: run rsync deployment
  else SHA differs
    Actions->>Actions: skip production upload and deployment
  end
Loading
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@tiye
tiye merged commit bdd180b into main Oct 11, 2026
1 check passed
@tiye
tiye deleted the migrate/calcit-029-stable branch October 11, 2026 07:30
@tiye

tiye commented Oct 11, 2026

Copy link
Copy Markdown
Contributor Author

Production follow-up: PR run 38121525008 passed, but merged main run 38121584874 failed before upload with Missing required input: bucket. Actual action inputs COS_BUCKET, COS_SECRET_ID and COS_SECRET_KEY were all empty; server deployment was correctly not executed. The repository is private and WebGPU-Art uses GitHub Free. GitHub documents that organization-level secrets are not accessible to private repositories on GitHub Free: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets . Listing inherited secret names does not prove runtime availability. Please configure repository-level COS_BUCKET, COS_SECRET_ID, COS_SECRET_KEY and RSYNC_PRIVATE_KEY, then rerun this main run. No secret values were read, no credential/visibility changes were made, and the verification gate has not been bypassed. Language/type/build/browser migration is accepted; production completion remains pending repository secrets.

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