cyclecad 3.10.3 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,239 @@
1
+ # Handoff — 2026-04-24, session 2 → next chat
2
+
3
+ Drop this file into the next chat (or tell Claude to read it). Continues the earlier handoff from the same day; read both.
4
+
5
+ ## Who I am
6
+ - **SACHIN** (vvlars@googlemail.com, GitHub vvlars-cmd)
7
+ - Building the **cycleCAD Suite** — now three products: cycleCAD + ExplodeView + Pentacad
8
+ - Working style: fast iteration, minimal clarifying questions, clipboard-paste commands via terminal, Safari private window for testing
9
+ - Full persistent memory: `~/cyclecad/CLAUDE.md` and `~/explodeview/CLAUDE.md`
10
+
11
+ ---
12
+
13
+ ## THE BIG STRATEGIC UPDATES THIS SESSION
14
+
15
+ ### 1. Suite positioning crystallised
16
+ **cycleCAD Suite** is the umbrella brand at cyclecad.com. Three products under it:
17
+
18
+ | Product | What | License | Status |
19
+ |---|---|---|---|
20
+ | **cycleCAD** | Parametric 3D CAD modeller (the core) | MIT | Live |
21
+ | **ExplodeView** | 3D viewer, AI render, AR, analysis | MIT | Live |
22
+ | **Pentacad** | CAM + 5-axis simulator + Kinetic Control bridge | AGPL-3 / commercial dual | Phase 0 scaffolded |
23
+
24
+ **Key decision**: Pentacad is built as a **cycleCAD module**, NOT a separate repo. Lives at `~/cyclecad/app/js/modules/pentacad*.js`. Follows the existing `window.CycleCAD.ModuleName` IIFE pattern used by every other cycleCAD module.
25
+
26
+ ### 2. Pentamachine / Matt status — CRITICAL
27
+ **Matt agreed to send files without NDA**, but his reply included a red flag:
28
+
29
+ > "We do provide feedback for 4+ companies that are working on similar CAM concepts to yours."
30
+
31
+ **What this means:**
32
+ - Matt is a **neutral ecosystem supplier**, not a partner candidate
33
+ - He legally has no confidentiality obligation toward us
34
+ - Ideas we share with him will influence his feedback to other teams (whether he means to or not)
35
+
36
+ **Revised strategy:**
37
+ - **Do not lead with JV** — the equity/partnership proposal is dead until Pentacad is a proven product
38
+ - **Pilot-first**: build cycleCAD Suite Pentacad extension in silence, ship polished demos (not source, not architecture docs), public launch before Matt asks for exclusivity
39
+ - Commercial conversation sequence: Phase 0-1 = silent, Phase 2 = open license discussion, Phase 3 = exclusive EU resale if warranted, JV only if Matt proactively offers equity
40
+
41
+ **Full tactical playbook**: `~/Documents/Penta/pentacad-notes/pilot-intelligence-brief.md` (private, DO NOT share with Matt)
42
+
43
+ ---
44
+
45
+ ## What shipped this session
46
+
47
+ ### Pentacad extension inside cycleCAD (`~/cyclecad/`)
48
+ New files, follow the existing cycleCAD IIFE module pattern (`window.CycleCAD.Pentacad*`):
49
+
50
+ | File | Purpose |
51
+ |---|---|
52
+ | `app/js/modules/pentacad.js` | Coordinator module — registers sub-modules, machine picker UI, public API |
53
+ | `app/js/modules/pentacad-cam.js` | 12 CAM strategies (stubs), post-processor skeleton for Pentamachine .ngc dialect |
54
+ | `app/js/modules/pentacad-sim.js` | G-code parser skeleton, forward-kinematics stub for 5-axis A/B tables |
55
+ | `app/js/modules/pentacad-bridge.js` | WebSocket client for controller bridge — jog/stream/DRO/pause/abort scaffolding |
56
+ | `app/pentacad.html` | Dedicated UI entry point — split-screen viewport + machine picker + workspace tabs |
57
+ | `machines/v2-50-chb/kinematics.json` | Template values marked `_confirmed: false` until Matt sends real data |
58
+
59
+ Load via `<script src="./js/modules/pentacad-cam.js"></script>` etc. in `app/pentacad.html`. Coordinator auto-initialises on DOMContentLoaded unless `window.CycleCAD.SkipPentacadInit` is set.
60
+
61
+ ### cyclecad.com suite landing mockup (`~/cyclecad/mockups/`)
62
+ - `cyclecad-suite-mockup.html` — full animated wireframe for the new suite landing page
63
+ - `index-agent-first.html.bak` — backup of the previous index.html (agent-first OS-of-manufacturing framing)
64
+
65
+ **Page structure** (top to bottom):
66
+ 1. **Hero** — "From idea to finished part. One browser tab." Staggered fade-up, animated kicker dot, drifting orbs, spinning logo
67
+ 2. **Lifecycle strip** — 5 stages (Ideate / Design / Present / CAM / Produce). Rainbow gradient line draws across all 5 chips when it scrolls into view
68
+ 3. **End-to-End Journeys section** — 3 animated product examples:
69
+ - 🔔 Custom bike bell (consumer, 6 days, €345, 23 pre-orders)
70
+ - ⚙️ Precision flange (B2B, 3 days, €2,400, 50-unit PO)
71
+ - 🍺 Branded bottle-opener ring (promo, 2 days, €1,900, 100 units)
72
+ - Each cycles through 6 lifecycle steps (idea → design → market → sell → manufacture → feedback) on a 15s loop with 2.5s per step, rows offset by one step, hover to pause, click step to jump
73
+ 4. **5 stage deep-dive sections** — each with SVG animations (typing terminal, line-draw CAD, exploded parts, toolpath tracing, data flow arrows)
74
+ 5. **Products grid** — 3 cards (cycleCAD gold / ExplodeView teal / Pentacad emerald)
75
+ 6. **Stats, CTA, founder note, footer**
76
+
77
+ Production version **not yet written** — the mockup is the design spec. When approved, port into real `/index.html`.
78
+
79
+ ### Pentamachine deliverables (`~/Documents/Penta/pentacad-deliverables/`)
80
+ - `ARCHITECTURE.md` — full Pentacad system architecture (repo doc, shareable)
81
+ - `Pentacad-Complete.pptx` — 25-slide deck (16 architecture + 8 private intelligence brief + dividers)
82
+ - `Pentacad-Complete.pdf` — same content, non-editable
83
+ - `pilot-intelligence-brief.md` — full tactical playbook for managing Matt
84
+
85
+ **Separate** private notes at `~/Documents/Penta/pentacad-notes/pilot-intelligence-brief.md`.
86
+
87
+ ### Standalone pentacad repo (SUPERSEDED but preserved)
88
+ - Located at `~/Documents/Penta/pentacad/`
89
+ - Full monorepo scaffold I built before the user pivoted to the "cycleCAD module" approach
90
+ - Keep as reference — useful pieces (LICENSE, .gitignore, README, CLAUDE.md, web-app main.js, CAM module index, strategies registry) can be copied if ever needed
91
+ - Do not commit as a separate repo
92
+
93
+ ### Emails drafted (for Matt, Penta Machine Company)
94
+ 1. **Short JV proposal** — not used; user went pilot-first instead
95
+ 2. **Long-form detailed proposal** — kept in reserve
96
+ 3. **Follow-up acknowledging 4+ competitors** — softer tone, pilot framing
97
+ 4. **Phase 0-3 file request** — the canonical list of what Matt needs to send
98
+
99
+ ---
100
+
101
+ ## What Matt already sent vs still missing
102
+
103
+ **In `~/Documents/Penta/` right now:**
104
+ - Marketing kit (logos, spec PDFs, product videos, photos)
105
+ - Installation guides (.docx) for V2-10 and V2-50
106
+ - **One real technical artifact**: `Sample Part for Demonstration/Ring Aluminum V2-50/`
107
+ - Fusion 360 archive (`.f3z`) with CAM setup
108
+ - 3 × `.ngc` files — 5-axis G-code confirming A/B kinematics, G20 imperial, G93 inverse-time feed, 40000 RPM spindle
109
+
110
+ **Still blocking Phase 0 (the foundation work):**
111
+ 1. Native 3D models of V2-10, V2-50CHB, V2-50CHK (STEP or Fusion/Inventor) — need for digital twin
112
+ 2. Machine kinematics JSON (A/B offsets, travel, home, tool-length zero, soft limits)
113
+
114
+ **Needed for later phases:**
115
+ 3. LinuxCNC version / Kinetic Control fork reference + HAL / INI files
116
+ 4. Fusion 360 post-processor (`.cps`) — to match the dialect exactly
117
+ 5. Tool library (ER11/ER40 holders, tool numbers, max RPM)
118
+ 6. Feeds & speeds defaults per material
119
+ 7. Kinetic Control IPC/WebSocket API surface
120
+ 8. Simulator source (if separate from control)
121
+
122
+ **Status**: Matt agreed to send items 1-8, awaiting delivery. Safe to continue cycleCAD and ExplodeView work in parallel.
123
+
124
+ ---
125
+
126
+ ## Pending task inbox (15 items, from tracker #10-24)
127
+
128
+ ### Priority strategic work
129
+ - **#10** · AI Engineering Analyst v1 — bolted-joint analysis. Biggest competitive gap vs MecAgent. Target: `app/js/modules/ai-engineer.js` (~800-1200 lines). Analytical-core-first (pure JS math, unit-tested against MecAgent screenshot numbers: F_friction=24960N, F_max_tensile=6687.5N, σ_vm=558MPa), then KaTeX rendering, then LLM tool-use layer, then RAG.
130
+ - **#11** · AI Engineering Analyst v2 — gears (AGMA), shafts (Goodman/Soderberg), bearings (L10), welds (throat stress)
131
+ - **#12** · AI Engineering Analyst — RAG + citations (@xenova/transformers MiniLM-L6-v2, IndexedDB, MecAgent-style "Open Document" footnotes)
132
+
133
+ ### cycleCAD quick wins
134
+ - **#13** · Ship 3.10.5 — more AI Copilot templates (mounting brackets, T-slot extrusions 40/40 + 80/40, ball/roller bearings, bearing cutouts). Same pattern as gear/pulley/shaft block in 3.10.4.
135
+ - **#14** · Polyline → geometry support in mini-executor. Unblocks true involute gear teeth.
136
+
137
+ ### cycleCAD
138
+ - **#15** · Dynamic version badge in status bar (currently hardcoded v0.9.0)
139
+ - **#16** · Wire splash screen buttons (New Sketch / Open-Import / Text-to-CAD / Inventor Project)
140
+ - **#17** · Run `app/test-agent.html` (113 tests, 15 categories), fix failures
141
+ - **#18** · Text-to-CAD with live preview
142
+ - **#19** · Photo-to-CAD reverse engineering
143
+ - **#20** · Server-side 138MB STEP import (FastAPI converter path, safer than opencascade.js v293)
144
+ - **#21** · Docker compose local test
145
+
146
+ ### ExplodeView
147
+ - **#22** · Compositing render for guaranteed CAD preservation. Post-v304 follow-up. Render 3D with transparent background, send only cropped background region to Nano Banana, composite 3D foreground over generated background in canvas. Bypasses "generative ≠ inpainting" limitation entirely.
148
+ - **#23** · Run `docs/demo/killer-features-test.html`, fix failures
149
+ - **#24** · Repro `block-only-in-chrome` ExplodeView bug (user report, unclear trigger)
150
+
151
+ ### Suite website
152
+ - Port the `mockups/cyclecad-suite-mockup.html` design into production `/index.html` once motion is approved
153
+ - Build dedicated `/pentacad.html` product marketing page in the same style
154
+
155
+ ---
156
+
157
+ ## Recommended next sprint
158
+
159
+ **Cheap high-impact**: #13 + #14. Ships 3.10.5, unlocks real gear teeth.
160
+ **Strategic**: #10 — AI Engineering Analyst v1. Biggest competitive moat, direct MecAgent parity.
161
+ **While waiting on Matt**: #22 (compositing render for ExplodeView) and #17 (run cycleCAD test agent).
162
+
163
+ Do #13 + #14 as warm-up, then go big on #10.
164
+
165
+ ---
166
+
167
+ ## Critical operational context (unchanged from earlier handoff)
168
+
169
+ - **Git lock dance**: VM commits leave stale `.git/*.lock` files. Always give ONE combined command:
170
+ ```bash
171
+ rm -f ~/REPO/.git/index.lock ~/REPO/.git/HEAD.lock && cd ~/REPO && git add ... && git commit -m "..." && git push origin main
172
+ ```
173
+ - **Clipboard delivery**: Commands via `mcp__computer-use__write_clipboard` → user pastes in Terminal. Must switch OFF Terminal (make Chrome or another app frontmost) before writing — Terminal is tier-"click" and blocks clipboard writes when frontmost.
174
+ - **Egress allowlist**: `explodeview.com` and `cyclecad.com` are NOT on the allowlist. Use `npm registry` (allowed) for version verification. For live-site checks, ask user to add domain or use Claude-in-Chrome MCP.
175
+ - **Deferred tools**: Schemas load on demand. Load computer-use in bulk `{query: "computer-use", max_results: 30}`, chrome `{query: "chrome", max_results: 20}`.
176
+ - **GitHub Pages concurrent-deploy fix**: shipped 2026-04-24 in `.github/workflows/pages.yml` with `concurrency: group: pages, cancel-in-progress: true`.
177
+
178
+ ---
179
+
180
+ ## Current npm versions
181
+
182
+ - `cyclecad`: **3.10.4** (next: 3.10.5 with AI Copilot templates, OR 3.11.0 with AI Engineering Analyst)
183
+ - `explodeview`: **1.0.22** / v304 (preservation-first `buildPrompt()` rewrite shipped earlier this session)
184
+
185
+ ## Latest commits
186
+
187
+ - ExplodeView: `41471f3` v1.0.22 tag, `b47d6a9` v304 code
188
+ - cycleCAD: HEAD clean before session; **unstaged changes this session** in:
189
+ - `app/js/modules/pentacad.js` + `pentacad-cam.js` + `pentacad-sim.js` + `pentacad-bridge.js` (new)
190
+ - `app/pentacad.html` (new)
191
+ - `machines/v2-50-chb/kinematics.json` (new)
192
+ - `mockups/cyclecad-suite-mockup.html` (new)
193
+ - `index-agent-first.html.bak` (new)
194
+ - `HANDOFF-2026-04-24-session-2.md` (this file, new)
195
+
196
+ Nothing pushed yet — waiting on user to commit.
197
+
198
+ ---
199
+
200
+ ## Suggested commit + push
201
+
202
+ ```bash
203
+ rm -f ~/cyclecad/.git/index.lock ~/cyclecad/.git/HEAD.lock && \
204
+ cd ~/cyclecad && \
205
+ git add app/js/modules/pentacad.js \
206
+ app/js/modules/pentacad-cam.js \
207
+ app/js/modules/pentacad-sim.js \
208
+ app/js/modules/pentacad-bridge.js \
209
+ app/pentacad.html \
210
+ machines/v2-50-chb/kinematics.json \
211
+ mockups/cyclecad-suite-mockup.html \
212
+ HANDOFF-2026-04-24-session-2.md \
213
+ index-agent-first.html.bak && \
214
+ git commit -m "Pentacad extension scaffold + suite landing mockup
215
+
216
+ - app/js/modules/pentacad*.js: 4 new modules (coordinator, CAM, sim, bridge)
217
+ - app/pentacad.html: dedicated Pentacad UI entry point
218
+ - machines/v2-50-chb/: template kinematics JSON (awaiting real data from Matt)
219
+ - mockups/cyclecad-suite-mockup.html: animated suite landing page with 3 end-to-end journey examples
220
+ - HANDOFF-2026-04-24-session-2.md: session handoff" && \
221
+ git push origin main
222
+ ```
223
+
224
+ ---
225
+
226
+ ## How to resume in the next chat
227
+
228
+ 1. Read `~/cyclecad/CLAUDE.md` (has been updated with suite positioning + Matt status + Pentacad extension)
229
+ 2. Read `~/explodeview/CLAUDE.md` (not modified this session, earlier context still current)
230
+ 3. Read `~/cyclecad/HANDOFF-2026-04-24.md` (the earlier session today — AI Render fix, GitHub Pages workflow)
231
+ 4. Read **this file** for session-2 context
232
+ 5. Read `~/Documents/Penta/pentacad-notes/pilot-intelligence-brief.md` if anything Matt-related comes up
233
+ 6. Open `~/cyclecad/mockups/cyclecad-suite-mockup.html` in Chrome to see the suite landing design
234
+ 7. Review deliverables at `~/Documents/Penta/pentacad-deliverables/`
235
+ 8. Ask me which of tasks #10-24 to start with, or just kick off #13 + #14 + #10 as the recommended sprint
236
+
237
+ ---
238
+
239
+ *File generated at end of session 2 on 2026-04-24. Next chat picks up from here.*
@@ -0,0 +1,90 @@
1
+ # Handoff — 2026-04-24 session → next chat
2
+
3
+ Drop this file into the next chat (or tell Claude to read it). Covers both cycleCAD and ExplodeView.
4
+
5
+ ## Who I am
6
+ - SACHIN (vvlars@googlemail.com, GitHub vvlars-cmd)
7
+ - Two repos: `~/cyclecad` (parametric 3D CAD modeler) + `~/explodeview` (CAD viewer for STEP files)
8
+ - Working style: fast iteration, minimal clarifying questions, terminal-paste commands via clipboard, Safari private window for testing
9
+ - Full memory is in `~/cyclecad/CLAUDE.md` and `~/explodeview/CLAUDE.md` — read those first if you need historical context
10
+
11
+ ## What shipped this session
12
+ - **ExplodeView v1.0.22 / v304** live on npm + GitHub Pages
13
+ - Commit `b47d6a9` (code) + `41471f3` (version bump)
14
+ - Rewrote `buildPrompt()` in `docs/demo/app.js` line 6595 with preservation-first logic
15
+ - Added "No Style" preset (`presetSuffixes.none = ''`) + button in `docs/demo/index.html`
16
+ - Cache bump 303 → 304, version badge updated
17
+ - Fixes the "Nano Banana v2 ignores the reference CAD object" problem from the 2026-04-24 diagnosis
18
+ - **cycleCAD@3.10.4** confirmed live on npm (from earlier in the day — gear/pulley/shaft AI Copilot templates)
19
+ - **cycleCAD/CLAUDE.md** updated with the new AI Engineering Analyst roadmap spec (see below)
20
+
21
+ ## Top pending item — AI Engineering Analyst (the big one)
22
+
23
+ **Source of inspiration**: MecAgent demo screenshots in `/Users/sachin/Desktop/mec` (12 PNGs from 11:49–11:51). The demo runs inside Autodesk Inventor and solves a complete bolted joint problem in natural language — parses "4×M12 10.9 bolts, 18kN shear, 18kN axial, 420Nm moment, μ=0.16, preload 39kN, BCD 96mm, K_s=1.5", walks through slip/tension/combined-stress checks with equations, cites textbook pages ("Analysis and Design of Machine Elements" by Wei Jiang, Wiley p.85), verdict "safe".
24
+
25
+ **Why this matters**: cycleCAD's existing `ai-copilot.js` builds geometry (gears, bolts, flanges), `fusion-simulation.js` has stubbed FEA, `validate.designReview` returns A-F heuristic scores. None of them answer an engineering question with analytical methods and source citations. This is the biggest competitive gap vs MecAgent and the clearest proof of cycleCAD's "agent-first for manufacturing" positioning.
26
+
27
+ **Target file**: `app/js/modules/ai-engineer.js` (~800–1200 lines)
28
+
29
+ **Scope v1 — bolted joint (VDI 2230 / Shigley)**:
30
+ - Analytical core: pure JS math, no LLM — functions like `checkSlipResistance({z, Q_F, mu, F_shear, K_s})`, `computeMomentLoad({M, r_i})`, `vonMises({sigma, tau})`
31
+ - Input form: bolt grade (4.6–12.9 dropdown with proof/tensile strength table), count, thread size (M3–M36), preload, external loads (F_shear/F_axial/M + BCD), μ, safety factor target
32
+ - Output: stepwise LaTeX equations (KaTeX preferred over MathJax — faster load, smaller bundle), pass/fail badges per check, final verdict
33
+ - Reuses Fastener Wizard bolt patterns + selected-assembly context as implicit inputs
34
+
35
+ **Scope v2 — other machine elements**:
36
+ - Spur/helical gear pair (AGMA bending + pitting stress)
37
+ - Shaft fatigue (Goodman/Soderberg, stress concentration at keyways/shoulders)
38
+ - Rolling bearing L10 life (C/P^n relation, dynamic vs static load)
39
+ - Fillet weld sizing (throat stress, weld leg from applied loads)
40
+
41
+ **RAG / citations**:
42
+ - Let user upload their own machine-element PDF → chunk + embed locally with `@xenova/transformers` MiniLM-L6-v2 → store in IndexedDB
43
+ - Bundled fallback corpus: public-domain machine-element references + legally-redistributable DIN/ISO standard excerpts
44
+ - Every equation gets `{source: "X", page: N}` metadata → rendered as footnote with "Open Document" button (mimics MecAgent UX exactly)
45
+
46
+ **LLM layer**:
47
+ - Same provider stack as `ai-copilot.js` (Claude Sonnet 4.6 paid, Gemini 2.0 Flash free, Groq Llama 3.3 70B free — already wired)
48
+ - Tool-use pattern: LLM parses natural-language problem → emits structured params → calls analytical JS functions → gets numeric result → writes narrative around it. LLM never fabricates numbers.
49
+
50
+ **UI**:
51
+ - New "Engineer" tab in right panel alongside existing Properties / Chat / Guide / Parameters
52
+ - Input form at top, stepwise calculation log in middle, citations panel at bottom
53
+
54
+ ## Other pending items (from CLAUDE.md)
55
+
56
+ ### cycleCAD
57
+ - More AI Copilot templates in `app/js/modules/ai-copilot.js` `matchTemplate()` — mounting bracket variants, T-slot extrusions (40/40, 80/40), ball/roller bearings, bearing cutouts. Same pattern as the gear/pulley/shaft block in 3.10.4. Would ship as `3.10.5`.
58
+ - Polyline → geometry support in mini-executor (unblocks true involute gear teeth — today's gear template is a blank cylinder)
59
+ - Dynamic version badge in status bar (currently hardcoded `v0.9.0`, should fetch from package.json)
60
+ - Wire splash buttons (New Sketch / Open-Import / Text-to-CAD / Inventor Project) to actually trigger their actions
61
+ - Run `app/test-agent.html` (113 tests, 15 categories) in Chrome and fix failures
62
+ - Text-to-CAD with live preview
63
+ - Photo-to-CAD reverse engineering
64
+ - 138MB STEP import via server-side `server/converter.py` (safer than opencascade.js v293 path)
65
+ - Docker compose local test
66
+
67
+ ### ExplodeView
68
+ - **Compositing render** for guaranteed CAD preservation: render 3D with transparent background, send only the cropped background region to Nano Banana, composite the 3D foreground over the generated background in canvas. Bypasses "generative ≠ inpainting" completely. Probably the right follow-up to v304.
69
+ - Run `docs/demo/killer-features-test.html` in Chrome, fix failures
70
+ - The `block-only-in-chrome` user report — needs repro
71
+
72
+ ## Critical operational context (don't forget)
73
+ - **Git lock dance**: VM commits leave stale `.git/*.lock` files. Always give ONE combined command: `rm -f ~/REPO/.git/index.lock ~/REPO/.git/HEAD.lock && cd ~/REPO && git add ... && git commit -m "..." && git push origin main`
74
+ - **Clipboard delivery**: Commands go via `mcp__computer-use__write_clipboard` → user pastes in Terminal. Must switch OFF Terminal (make Chrome or other app frontmost) before writing — Terminal is tier-"click" and blocks clipboard writes when it's frontmost.
75
+ - **Egress allowlist**: `explodeview.com` and `cyclecad.com` are NOT on the allowlist. Use `npm registry` (allowed) to verify version bumps. For live-site verification, either ask user to add domain to Settings → Capabilities, or use the Claude-in-Chrome MCP.
76
+ - **Deferred tools**: All tools show as names in the prompt but schemas are loaded on demand via ToolSearch. Load `computer-use` in bulk: `{query: "computer-use", max_results: 30}`. Load `chrome`: `{query: "chrome", max_results: 20}`.
77
+ - **GitHub Pages concurrent-deploy fix** shipped 2026-04-24 in `.github/workflows/pages.yml` with `concurrency: group: pages, cancel-in-progress: true`. If Pages fails with "deployment in progress" again, that's the first check.
78
+
79
+ ## Current npm versions
80
+ - cyclecad: **3.10.4** (next bump should be 3.10.5 if AI Copilot templates added, or 3.11.0 if AI Engineering Analyst ships)
81
+ - explodeview: **1.0.22**
82
+
83
+ ## Latest commits
84
+ - ExplodeView: `41471f3` v1.0.22 tag, `b47d6a9` v304 code
85
+ - cycleCAD: HEAD has CLAUDE.md modified locally (untracked pentacad/mockups/machines files present — leave alone unless asked)
86
+
87
+ ## How to resume
88
+ 1. Read `~/cyclecad/CLAUDE.md` and `~/explodeview/CLAUDE.md` for full history
89
+ 2. If continuing AI Engineering Analyst: start with `app/js/modules/ai-engineer.js` skeleton — define the analytical functions for bolted joint first (pure math, no LLM), unit-test them against MecAgent's numbers from the screenshots (F_friction = 24960 N, F_max_tensile = 6687.5 N, σ_vm = 558 MPa), THEN wire in KaTeX rendering, THEN LLM layer, THEN RAG
90
+ 3. If continuing something else: ask me which of the pending items to prioritize
package/app/index.html CHANGED
@@ -1014,6 +1014,7 @@
1014
1014
  <button class="menu-item-link" data-action="tools-marketplace">Marketplace...</button>
1015
1015
  <div class="menu-separator"></div>
1016
1016
  <button class="menu-item-link" data-action="tools-ai-copilot">✨ AI Copilot (multi-step)</button>
1017
+ <button class="menu-item-link" data-action="tools-ai-engineer">🔩 AI Engineering Analyst</button>
1017
1018
  <button class="menu-item-link" data-action="tools-text-to-cad">Text-to-CAD (AI)</button>
1018
1019
  <button class="menu-item-link" data-action="tools-photo-to-cad">Photo-to-CAD</button>
1019
1020
  <button class="menu-item-link" data-action="tools-dfm">Manufacturability Check</button>
@@ -1539,6 +1540,7 @@ window._dismissSplash = function(action) {
1539
1540
  <!-- Killer Feature Modules -->
1540
1541
  <script src="/app/js/agent-api.js?v=a41b98a5"></script>
1541
1542
  <script src="/app/js/modules/ai-copilot.js?v=14e5d5d7"></script>
1543
+ <script src="/app/js/modules/ai-engineer.js?v=20260424v1"></script>
1542
1544
  <script src="/app/js/modules/text-to-cad.js"></script>
1543
1545
  <script src="/app/js/modules/photo-to-cad.js"></script>
1544
1546
  <script src="/app/js/modules/manufacturability.js"></script>
@@ -1967,6 +1969,13 @@ window._dismissSplash = function(action) {
1967
1969
  if (dbc) { dbc.innerHTML = ''; dbc.appendChild(window.CycleCAD.AICopilot.getUI()); dbc.style.maxHeight = '620px'; dbc.style.overflow = 'auto'; }
1968
1970
  } else { showToast('AI Copilot module not loaded', 'error'); }
1969
1971
  break;
1972
+ case 'tools-ai-engineer':
1973
+ if (window.CycleCAD && window.CycleCAD.AIEngineer) {
1974
+ showDialog('🔩 AI Engineering Analyst — bolted-joint analysis (VDI 2230 / Shigley)', '');
1975
+ const dbe = document.getElementById('dialog-body');
1976
+ if (dbe) { dbe.innerHTML = ''; dbe.appendChild(window.CycleCAD.AIEngineer.getUI()); dbe.style.maxHeight = '680px'; dbe.style.overflow = 'auto'; }
1977
+ } else { showToast('AI Engineering Analyst module not loaded', 'error'); }
1978
+ break;
1970
1979
  case 'tools-text-to-cad':
1971
1980
  if (window.CycleCAD && window.CycleCAD.TextToCAD) {
1972
1981
  showDialog('Text-to-CAD (AI)', '');