From baa4443fb0ba4cda3497e1a05bddb5ca39e9c721 Mon Sep 17 00:00:00 2001 From: Eve Date: Sat, 25 Apr 2026 13:48:22 -0700 Subject: [PATCH] chore: add CI, issue/PR templates, fix package.json metadata, README windows note - .github/workflows/ci.yml: typecheck + lint + build on PR/push - .github/ISSUE_TEMPLATE/{bug_report,feature_request,model_routing,config}.yml + PR template - package.json: name (cadam), version (0.1.0), description, homepage, repository, bugs, author, license, keywords - README.md: flag Docker Desktop requirement on Windows (closes #118), correct React 19 Co-authored-by: eve-app <280557408+eve-app@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/bug_report.yml | 79 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 8 +++ .github/ISSUE_TEMPLATE/feature_request.yml | 37 ++++++++++ .github/ISSUE_TEMPLATE/model_routing.yml | 43 ++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 31 +++++++++ .github/workflows/ci.yml | 46 +++++++++++++ README.md | 3 +- package.json | 27 +++++++- 8 files changed, 271 insertions(+), 3 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/ISSUE_TEMPLATE/model_routing.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/workflows/ci.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..1d52c263 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,79 @@ +name: Bug report +description: Something is broken in CADAM (the open-source app or the demo at adam.new/cadam) +title: "[Bug] " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to file a bug. Before opening, please search existing issues to avoid duplicates. + + - type: dropdown + id: surface + attributes: + label: Where did you hit this? + options: + - "Live demo at adam.new/cadam" + - "Local dev (cloned this repo)" + - "Self-hosted / forked" + default: 0 + validations: + required: true + + - type: input + id: prompt + attributes: + label: Prompt or input + description: If the bug happened during generation, paste the prompt and any image filename. + placeholder: "a parametric phone stand for a Pixel 8" + + - type: dropdown + id: model + attributes: + label: Model selected (if known) + options: + - "Don't know / default" + - "Claude Opus 4.7" + - "GPT-5.5" + - "GPT-5.5 Pro" + - "Gemini 3.1 Pro" + - "DeepSeek V4 Pro" + - "Other (mention in description)" + + - type: textarea + id: repro + attributes: + label: Steps to reproduce + placeholder: | + 1. Go to adam.new/cadam + 2. Type "..." + 3. Click ... + 4. See error + validations: + required: true + + - type: textarea + id: expected + attributes: + label: What did you expect? + validations: + required: true + + - type: textarea + id: actual + attributes: + label: What actually happened? + description: Include error text, console output, or a screen recording link if you can. + validations: + required: true + + - type: input + id: browser + attributes: + label: Browser + OS + placeholder: "Chrome 130 / macOS 15.1" + + - type: textarea + id: extra + attributes: + label: Anything else? diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..c4f3ec9d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: Discord community + url: https://discord.com/invite/HKdXDqAHCs + about: Quick questions, demo sharing, troubleshooting + - name: Live demo + url: https://adam.new/cadam + about: Try CADAM without cloning anything diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..7b5a559a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,37 @@ +name: Feature request +description: Suggest something CADAM should do +title: "[Feature] " +labels: ["enhancement"] +body: + - type: textarea + id: problem + attributes: + label: What problem does this solve? + description: Start with the user pain, not the implementation. + validations: + required: true + + - type: textarea + id: proposal + attributes: + label: What would a good solution look like? + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: What alternatives have you considered? + + - type: dropdown + id: audience + attributes: + label: Who would benefit most? + multiple: true + options: + - "3D printing hobbyists / makers" + - "Mechanical engineers" + - "Industrial designers" + - "Students / educators" + - "Power OpenSCAD users" + - "Other (mention in description)" diff --git a/.github/ISSUE_TEMPLATE/model_routing.yml b/.github/ISSUE_TEMPLATE/model_routing.yml new file mode 100644 index 00000000..bcb01d01 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/model_routing.yml @@ -0,0 +1,43 @@ +name: Model / routing issue +description: Something about model selection, output quality, or vision support is off +title: "[Model] " +labels: ["model-routing"] +body: + - type: dropdown + id: model + attributes: + label: Which model? + options: + - "Claude Opus 4.7" + - "GPT-5.5" + - "GPT-5.5 Pro" + - "Gemini 3.1 Pro" + - "DeepSeek V4 Pro" + - "Other" + validations: + required: true + + - type: textarea + id: prompt + attributes: + label: Prompt or image + validations: + required: true + + - type: textarea + id: output + attributes: + label: What did the model produce? + + - type: textarea + id: expected + attributes: + label: What did you expect? + validations: + required: true + + - type: textarea + id: notes + attributes: + label: Notes + description: Anything else useful (regression vs prior model, vision-related, region/locale, etc.) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..bcd88747 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,31 @@ +## Summary + + + +## Why + + + +Closes # + +## Changes + + + +- + +## Testing + + + +- [ ] Manually tested locally +- [ ] Tested on the live demo (if applicable) +- [ ] Added or updated tests (if applicable) + +## Risk + + + +## Screenshots / clips + + diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..2065256b --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,46 @@ +name: CI + +on: + push: + branches: [master] + pull_request: + branches: [master] + +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: typecheck / lint / build + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + + - name: Install dependencies + run: npm ci --no-audit --no-fund + + - name: Typecheck + run: npm run typecheck + + - name: Lint + run: npm run lint + + - name: Build + run: npm run build + env: + # Build expects these to be defined; supply harmless local-style defaults + # so a fresh fork can still verify the pipeline without prod secrets. + VITE_SUPABASE_ANON_KEY: ci-placeholder-anon-key + VITE_SUPABASE_URL: http://127.0.0.1:54321 + VITE_POSTHOG_PROJECT_KEY: ci-placeholder-posthog + VITE_SENTRY_ENVIRONMENT: ci + VITE_SENTRY_DSN: '' diff --git a/README.md b/README.md index b67f4b2c..442f224e 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,7 @@ npm run dev - Node.js and npm - Supabase CLI +- Docker Desktop (required by `npx supabase start` to run the local Postgres + Edge Functions runtime; **on Windows** ensure Docker Desktop is installed and running before running `npx supabase start`, otherwise it will fail with a missing-Docker-engine error) - ngrok (for local webhook development) ## 🔧 Setting Up Environment Variables @@ -160,7 +161,7 @@ npx supabase functions serve --no-verify-jwt ## 🛠️ Built With -- **Frontend:** React 18 + TypeScript + Vite +- **Frontend:** React 19 + TypeScript + Vite - **3D Rendering:** Three.js + React Three Fiber - **CAD Engine:** OpenSCAD WebAssembly - **Backend:** Supabase (PostgreSQL + Edge Functions) diff --git a/package.json b/package.json index d2dea81a..72b981ba 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,30 @@ { - "name": "vite-react-typescript-starter", + "name": "cadam", + "version": "0.1.0", + "description": "CADAM is the open source text-to-CAD web application. Generate parametric 3D models from natural language and images, export STL/SCAD, runs in your browser via OpenSCAD WebAssembly.", + "homepage": "https://adam.new/cadam", + "repository": { + "type": "git", + "url": "git+https://github.com/Adam-CAD/CADAM.git" + }, + "bugs": { + "url": "https://github.com/Adam-CAD/CADAM/issues" + }, + "author": "Adam (https://adam.new)", + "license": "GPL-3.0-or-later", + "keywords": [ + "cad", + "text-to-cad", + "openscad", + "wasm", + "3d", + "parametric", + "ai", + "llm", + "three-js", + "react" + ], "private": true, - "version": "0.0.0", "type": "module", "scripts": { "dev": "vite",