-
Publish 0.4.6 from develop to main
发布于
2026-08-12 19:48:30 +00:00 Source ref: develop
Source commit:195fd52072
Target branch: main
Previous target:2a3a42a39f
Release base:2a3a42a39f
Previous source:f73e3bd229Included commits since previous source:
195fd520Merge pull request #219 from earthtojake/release/0.4.6
bd9b0429Release 0.4.6
9e7cb8b5Merge pull request #216 from earthtojake/claude/viewer-repo-sync-2f2301
36261352Merge branch 'develop' into claude/viewer-repo-sync-2f2301
067aa859Merge pull request #217 from earthtojake/claude/text2cad-ascii-rewrite-e0d821
b41e2827Merge branch 'develop' into claude/text2cad-ascii-rewrite-e0d821
11fc250bRelease: teach the publish-commit verifier about the trimmed roots
76eaea6fdocs: TEXT2CAD wordmark, header icon, drop stale demo link
9dfb9282Release: add bump=none so publishing need not move the version
91ff7305Merge pull request #214 from earthtojake/claude/measure-tidy
c3e9971eviewer: widen the measurement palette to twelve evenly spaced hues
2f98af05Strip past-development-thread artifacts; lead the README with the demos
d92194e6viewer: move Measure to the lower pane, after Reference
fbae5913viewer: give every measurement its own colour
fb98da58Remove design/ planning docs
2f993c5dviewer: make viewer/ self-contained, drop it from main, mirror it to cad-viewer
a0d279efviewer: drop the per-row glyph and call the tab Measure
81e22351viewer: measurements belong in the sidebar, not floating over the model
8328924dviewer: two points on one face are a distance, not a zero
41cd8346viewer: show what a measure click would bind to before it is clicked
a7e4818aviewer: Escape cancels the measurement, and measuring keeps one cursor
dd94d825viewer: the measure tool measures what it says it measures
b62c1266Merge pull request #193 from warun7/feat/viewer-measure-tool
4788beb9Merge branch 'develop' into feat/viewer-measure-tool
62371310Merge remote-tracking branch 'fork/feat/viewer-measure-tool' into feat/viewer-measure-tool
bf826ae8viewer: measure gates on topology capability, works in assemblies
baf810faMerge branch 'develop' into feat/viewer-measure-tool
9dfba8bfMerge origin/develop into feat/viewer-measure-tool
2f5c4444Merge remote-tracking branch 'origin/release/0.4.0' into feat/viewer-measure-tool
e5e0a910Merge pull request #200 from earthtojake/claude/models-reorg-followup-paths
74e94609models: fix two path references the reorg missed
0d3b75c6Merge pull request #199 from earthtojake/claude/models-directory-reorg-ced40b
e110ef86models: reorganize fixtures by artifact kind
79780be8Merge pull request #198 from earthtojake/claude/viewer-format-unification-u2-u5
5be95207viewer: robots do not select — the select tool is camera navigation
7bde608cviewer/cadjs: robots load whole, with progress, 32x faster
3667d22edesign: robot parity — R0/R1/R3/R4/R6 done, R2/R5 dropped
e849884fcad/viewer: R4 — robots render headlessly
b2052a75viewer: R3 — a robot draws its links as they arrive
116495deviewer: R1 — a robot's links are selectable parts
3019942bdesign: robot descriptions as a first-class render type
4456420fviewer: select, pan and draw are viewport tools, so every format gets them
012cfb85design: viewer format unification — U0 through U5 complete
7dcbd2e1viewer: U5 — loading, alerts and file-list state behind the registry
b4725faeviewer: U4 — the implicit honours the theme's fill and rim, and a harness that proves it
72daa145dxf: a HATCH seed point is not a boundary vertex
bcaf9f7aviewer: U3 — the viewport menu and camera actions belong to every format
3826d4daviewer: U2 — one parameter/animation surface, keyed off the active runtime
59e165fdviewer: U1 — projection is a viewport trait, honoured by every format
f4d9495cviewer: U0 — capability registry replaces format-identity checks
c0b9952cdesign: viewer format unification — capabilities, not identities
17b87a44Merge pull request #195 from earthtojake/claude/step-generation-status-tracking-1b7ff6
6003c386viewer: per-section bend resets; right-side ticks in material folders
5d5bc3aeviewer: material folders, Fold/Corners naming, Orbit for DXF
54148dbcviewer: give implicits the standard tools and export route
d3ba32b8viewer: SendCutSend material catalog, grouped select, no Sheet facts
a2467e7fviewer: material presets with sheet facts; bends list leads its tab
88e3697fviewer: curved is the default bend style; title the Bends sections
98444305viewer: split DXF sheet panes, model orientation buttons
5c0053b6viewer: Material/Bends tabs, display units, plain layer rows
678c80c4implicit: composite over the shared stage, and stop re-rendering idle frames
af2a9573viewer: opt-in hooks so a render type can tune the shared loop
e4d0c17bviewer: Units control, Layers as a dedicated tab, LFS-pointer guard
a1e6d6a9design: implicit raymarch performance — findings and plan of attack
546057a5viewer: DXF settings persist per file in sessionStorage
3f14b916viewer: cover the implicit re-fit gate with tests, record execution status
be589652viewer: implicit becomes a shared render type instead of a second viewer
14421404dxf: units, layers, text engravings, score lines, angled bends, K-factor
d8a12483design: plan folding the implicit raymarch into the shared CadViewer as a 4th render type
dfaff2ebviewer: curved bend guides on the material, DXF tab reset, tab rename
e7f20f27viewer: boxed default bend style, compact one-row bend controls
a8da66ecviewer: curved bends fold the right way and replace the baked mesh
677df5bdviewer: one-row bends, curved bend style, stacked drawing settings
cef87ecddxf: stop corrupting the mesh cache, zero the bend default, group bends properly
cc66641fdxf: per-bend controls, mitered bends, flicker-free folding, shared tools
8c8e0380dxf: make bending actually work — one transform, in cadjs, with dotted creases
ed98c373dxf: live bending, flat-by-default thickness, and a generic plan mode
a59cbbd9dxf: Material and Bends settings tabs, with a working thickness control
9937630eviewer: 2D/3D toggle for drawings
592c6796dxf: parse the entity set real drawings actually use
c6d05b75dxf: cadgen caches only what it renders
214b58bbdxf: lie flat, show real filenames, keep STEP out of the drawings folder
fc7604f7viewer: say WHY a render-artifact build failed
64ad0095Merge remote-tracking branch 'origin/release/0.4.0' into feat/viewer-measure-tool
11f16c96Shrink measure dimension label chip and tighten padding
1202c76cdxf skill: add scripts/snapshot on a shared render core
6f027288dxf skill: adopt the STEP CLI shape (gen + artifact)
61c71da5models/dxf: reset the imported fixtures around closed area
5550a011viewer: bind normalizeThemeSettings, and catch the whole bug class
9e63149fdesign: record the 0.4.0 rebase outcome and the imported-DXF gap
5a48cd28viewer: keep raymarched and robot entries off the mesh path
92f6ee46viewer: gate the mesh load on the render-asset format
43403a15viewer: drop the DxfFileSheet branch's orphaned closer
e467e52drebase: finish the 0.4.0 conflict resolution
296144feWIP2: CadWorkspace merge repair -- ~8 syntax breaks fixed, more remain
12670ff4WIP: squash-merge onto release/0.4.0 -- CadWorkspace still has syntax breaks
66c08036viewer: drop G-code visualization
9c70ad41moonwatch: prune one-off render jobs and local pnpm lockfiles
25f2b690cad docs: OCC/build123d failure modes from the chronograph build
c2fc707bStyle measure panel and toolbar with sidebar theme tokens
04ef281bBUGS.md: entries 2, 7 and the Compound-color entry marked fixed
41ad0c80cadgen-daemon: abort orphaned jobs when the client disconnects
3cdedc50cadgen: color bare-Compound leaves instead of warning and skipping
d4d840cacad/snapshot: reject unknown render job and output keys
568b0a23moonwatch: grand tour clip — reveal dwell plus gear-tier explode
1f58f212moonwatch: reveal clip separates running face from running movement
230763b1moonwatch: animation sidecar — escapement run loop, reveal, showcase explode
166681c0BUGS.md: entry 9 final addendum — renderer-class ceiling confirmed after per-part materials
4433ca9cmoonwatch: white painted hands restored; near-black blued screws; final gauntlet state
a30a1d6emoonwatch: bridge plates with wheel windows; polished metal dial furniture
6e675fcfmoonwatch: narrowed anglage + full-coverage stripes + domed jewels; narrow lug polish band; matte brushed steel
2acb8fdamoonwatch: spline bridge silhouettes; AR-coated display glass; center-link polish
cd21a16fmoonwatch: chronograph bridge + coupling cock; all chrono pivots capped
e8b087edmoonwatch: dial register depth (0.5 recesses, rim steps, darker floors); case polished bevel ribbons
83ad7992moonwatch: chronograph works (50 parts, 7-column wheel, zeroed pose); material calibration; neutral env rotation
b7b3460arender pipeline: per-occurrence PBR material overrides + opacity; moonwatch material vocabulary
80f01171BUGS.md: document per-part material ceiling
d0e7ad4bmoonwatch: case grain + pusher remodel; neutral strong HDRI; darker steel albedo
b4b4e6ccmoonwatch: bracelet brushed grain + continuous drape + clasp pusher clash fix
bb12d31bmoonwatch: flat slotted screws, metallic materials pass, bright anglage ribbons, lever grain, domed jewels
9b17829amoonwatch: jewel seating + anglage ribbons + rolled bracelet shoulders; straight-grain vocabulary
bfb5f0e1moonwatch: movement finishing round 2 (constructive anglage, two-tone striping); raking key light; deep ruby/blued palette
c8b75411moonwatch: movement composition entry + movement ring; deepen movement metals
c4e4c334moonwatch: movement base finished (83 parts); keyless works (12 parts); crowned bracelet links
8a990cf6moonwatch: whole-watch assembly entry; smooth lug lofts; cased-movement frame map
92c550a6moonwatch: bracelet cluster (57 bodies) + movement-base draft; end-link seat clearance
65986ca6moonwatch: case + dial clusters; glb alphaMode fix; theme/palette tuning
d0800e38moonwatch: project skeleton — spec, finishing vocabulary, presentation theme, sampler
a21e0d25Fix measure tool bugs and finalize dimension overlay
1f2ed03bcad/snapshot: --params-path names the sidecar for an imported STEP
26f899aeviewer: imported STEP files take a<name>.step.jsparameter sidecar
44fd27d6repo: license copyright holder is Thompson Labs LLC
507a0575viewer: stop implicit animation controls looping the app to a standstill
4b212ddcviewer: exploded view is one slider driving a hierarchical radial explode
ecb33db5viewer: throttled values emit on change, not on identity
fbb2969dviewer: single .dxf suffix for drawing-generator labels
0474dcc7models/dxf: flatten into one folder, document validator + viewer results
49c76fbfmodels: add dxf examples folder (generated + imported fixtures)
29ff3104viewer: bring back the animation restart, named for what it does
0df41b0aviewer: settings section headings match the navbar size
2914776fviewer: STEP parameters tab uses the shared ParameterControlsSection
fe46cb20viewer: split the parameters tab, one reset per tab, wider row gap
59ec75a9viewer: one control height, dropdown-first mode controls, tighter triggers
8c134364viewer: mode controls become inline rows, not full-width strips
5c335e7aviewer: even out collapsed sections, tighten the settings spacing scale
bea4d744viewer: restyle settings section headings and rebuild the spacing scale
7bd57289viewer: codify settings UI guidelines and enforce them across all sheets
c074eda8viewer: one file icon per format, with a badge for generated models
4ebcd5dcviewer: pan tool, favicon tile, and a cursor the pose picker no longer steals
9dfd8dcbviewer: navy tile favicon, and title the tab "text-to-cad | "
66f05064viewer/docs: stellated-dodecahedron favicon, rendered from an implicit model
46df04f8cad/cadjs: fix four silent-wrong-output bugs in snapshot render jobs
99d452abcad: add inspect validate for per-solid geometric soundness
af9c0c64Add full 3D measure tool to the CAD viewer
e3eb794cviewer: zoom baseline, origin axis, copy filename, first-run reference tip
5eb5f356models: F1 concept car one-shot
ede0e713cad/cadjs/viewer: fix silent-wrong-output bugs found building an F1 assembly
56a119c0Merge pull request #190 from earthtojake/claude/mid-engine-hypercar-cad-a2e3bc
d790750fmodels: mid-engine hypercar one-shot
d84f4dfccadjs/cadgen: fix silent-wrong-output bugs found building a large assembly
722411a5viewer: one Display tab, one theme, one right-hand panel
94f6240ecadgen: return a single-root STEP as its root, not wrapped
3bd876d1Merge pull request #187 from earthtojake/claude/lego-star-destroyer-cad-d4c7ec
c288be04viewer: let a same-stem generator own its entry, and allow cadjs' real path
480e4555Rebrand to text-to-cad: new byline, domain, wordmark, and hero layout
be2922bdRestore cadgen PyPI pinning for the repo-root plugin structure
2b0bad8cMerge develop (0.3.13) into release/0.4.0; adopt the root plugin structure
b95d1a7dviewer: the URL path is the directory; delete the served-root layer
76316513Report artifact-build progress in the CLI and the CAD Viewer
4061f6d8Merge develop (0.3.11) into release/0.4.0
fffe46ddMake the generation lock real; unify STEP/DXF freshness; trim export CLI
e5a37b46snapshot: reject render-asset cache hits across job sources
843a9884Merge develop (0.3.10) into release/0.4.0
1a93185aMerge pull request #179 from earthtojake/claude/backport-0.3.10-to-0.4.0
1e0181f3bundle: regenerate the snapshot runtime for the backported cadjs highlights
6c77b932Merge pull request #172 from rootsbymenda/fix/per-job-asset-cache-key
07694269Merge pull request #176 from earthtojake/claude/cicd-issue-165-6a3072
1e0b19d9Merge pull request #174 from earthtojake/claude/github-issue-164-f6289c
b610457aMerge pull request #171 from earthtojake/claude/pr-108-rendering-fixes
046c33d1Merge pull request #169 from n8guru/fix/software-webgl-performance
58fd7368Merge pull request #158 from xiaolai/fix/nlpm-document-bambu-tls-mitigation
68c18778Merge pull request #133 from earthtojake/claude/step-cli-refactor-plan-jujap5
1ef6b9fccadgen: drop the API surface the gen/export split made unreachable
2f8b2b1dcad skill: port the warm daemon and CLI entries to gen/export/artifact
9900344eAdd scripts/artifact debug CLI and scripts/gen --write-step
c0887c40Split STEP CLI: scripts/gen builds render packages, scripts/export writes files
52471eb6models: remove LEGO falcon experiment (1.5GB source exceeds repo size budget)
0dea657aMerge pull request #143 from earthtojake/claude/snapshot-unification-hx3k
26eab03bcadgen: write explicit exports even when the compose is current
0e7f07e2snapshot: document --mode + reject single-frame .gif outputs
a5d2c49dcad skill: resolve bundled cadgen from the step/inspect entries
485759fccadjs: ghost non-focused parts in view/orbit snapshot renders
29a28fd4snapshot: regenerate bundle after rebase onto release/0.4.0 @2045d5c1
1003f91esnapshot: validate exploded.auto.mode + honor the top-level axis shorthand
2c6b51b1snapshot: regenerate bundle after rebase onto shared-geometry release/0.4.0
e231c49fsnapshot: accept .implicit.js inputs through the unified CLI
8eadb440snapshot: dispatch implicit jobs to the implicit backend in the shared runtime
df5c8544snapshot: factor shared job normalization + a kind-dispatch resolver table
42a62863cadjs: gate STEP sidecar loads by source kind in loadSource
0f670549snapshot: echo projection per rendered output
ae06b485snapshot: validate job-level display values, not just the --display flag path
b4fcf0f3snapshot: surface --debug diagnostics in the rendered --json result
5a63380esnapshot: honor mesh projection, reject non-solid modes, fix empty-value parity
76c4074fsnapshot: render direct GLB/STL/3MF meshes + agent-facing polish
e00f4645snapshot: add opt-in --debug build-strategy diagnostics
2045d5c1Merge pull request #150 from earthtojake/codex/validate-cad-python-backend
d2ac3bddviewer: require valid CAD Python backend
8149ba93cadjs: fix package occurrence placement + double-transformed effective bounds
7b685ed1models: add animated Millennium Falcon experiment
a8bbaf63cadjs/viewer: sync lockfiles for three-mesh-bvh (pin 0.8.0)
e97d94b0viewer/cadjs: universal render+raycast perf pass
33b58addmodels: archive GPT-5.6 humanoid concepts
71d90c9fviewer: anchor zoom-to-cursor pivot to the model for consistent pan/zoom (#147)
5ebf9596viewer/cadjs: shared-geometry package rendering (single path; remove instancing) (#144)
ffce7520viewer/cadjs: make package instancing opt-in (fixes exploded view, params/animations, highlighting)
6515b9f9Merge pull request #138 from earthtojake/claude/viewer-renderer-consolidation-ax9vix
65c20033docs+tooling: reshape consolidation strategy around packages-resident backends; add visual baseline harness
663d6089tests: fence the single-install invariant and widen the package boundary scan
4d5b82a2bundle: resolve cadjs's implicitjs imports hermetically in the snapshot bundle
db4d291eviewer+cadjs: re-point implicitExport at cadjs/implicit/* (adds exportModel re-export)
29c832fbviewer: implicit imperative-handle zoom parity + sharpen consolidation handoff
c91984f8docs: record renderer-consolidation dependency direction and handoff plan
5ba1181dviewer+cadjs: route implicit APIs through cadjs so cad-viewer installs cadjs alone
b5402c8dpackages: cadjs depends on implicitjs; dedupe byte-identical camera.js
4a02b2ffviewer: repoint CadViewer at the shared viewport camera kit
f5d03bc9viewer: extract shared viewport camera kit; adopt it in implicit viewer
336dc450Merge pull request #140 from earthtojake/claude/cadgen-edit-path-perf
6a25f6b5docs: fix dead pre-rebase SHAs in perf notes; record review follow-up
2aa13773cadgen: memoize the semantic hash, harden its fallback, bound A8 retention
d78a308dMerge pull request #141 from earthtojake/claude/viewer-phase4-instanced-interaction
facca2d4docs: mark gap #7 (zoom-to-fit selection) resolved in Phase 4
348df285viewer: per-hover incremental instance update (Phase 4)
3475fa52viewer: zoom-to-fit a selected instanced occurrence (Phase 4 gap)
83108ae6docs: record edit-path perf A-set outcomes (A2/A3/A4/A8 done; A5/A6/A1 declined with evidence)
37876fe5cadgen: serialize each component's BREP once for hash + worker payload
fb0e1834cadgen: cache module first-party classification across builds
f7e8de7bcadgen: comment-insensitive closure hashing + stdin closure footgun fix
06bd70ffMerge pull request #137 from earthtojake/claude/viewer-instancing-perf
0d0d85d7viewer: fix instanced-package interaction defects from pre-PR audit
2807e2a2viewer: size-policy default-on for package instancing (Phase 3 increment 6)
e087b220viewer: per-instance selection/hover/hide/focus (Phase 3 increment 3)
aa89e28cviewer: resolve InstancedMesh picks to occurrences (Phase 3 increment 2)
416a805dcadjs: wire cid-keyed instancing into the render path behind instancePackages flag
6c2984a4docs: Phase 3 status — instancing engine done + verified; integration increments mapped
d4fb9041cadjs: cid-keyed instanced-package scene engine (Phase 3 core)
cd89da47Merge pull request #135 from earthtojake/claude/viewer-launch-simplify-25tiux
2b4d524eDrop viewer launcher reuse; rename tostart; default port 3245
a9e03336viewer: keep an auto-hiding toolbar in orbit (preview) mode
f0836401Merge pull request #136 from earthtojake/claude/exploded-view-release-0.4.0
1312213bviewer: dedicated Exploded + Clip tabs with redesigned controls
5d867facviewer: add a Loop toggle to animation playback controls
db048e25raptor3: ground the exploded view and tighten spacing
4fa04e2cmodels/one-shots: add Raptor 3 and Starship + Mechazilla concept models
20e627fachore: regenerate snapshot runtime bundle on release/0.4.0 base
08aae0afSimplify CAD Viewer launch to a fixed port
8ce9d4c1viewer: telescope concentric coplanar parts along the axis
0d7c9a85viewer: clearer default explode spread + physical radial bloom
46d6f251viewer: fix exploded-view review findings
8a438e29viewer: exploded-view step list authoring + design doc status
d4a38d6eviewer: step-based exploded view (model, evaluator, generator, scrub slider)
0c6db185design: exploded view research — pro-tool survey, sources, refined proposal
c585c124design: exploded view redesign research draft (current impl + critique + proposal)
56090fd4Add execution plan for viewer launch simplification
a5db405emodels: drop baked mars_rover_concept.step; keep the .step.py generator
07f1bdb7Add lunar mass driver concept to models/one-shots
5fce2aa7Merge spacex packages and juno/lyra robots into models/one-shots
e7bc036emodels: add GD01-inspired transformable mecha concept under one-shots
a3fa2b91cadjs: load params sidecars for component-GLB package render sources
2263d465Add Mars rover concept model under models/one-shots
14865695design: Phase 3 scoping reality + Phase 4 correction (matrixAutoUpdate already done)
7c2bb541viewer: parse package component GLBs in the worker at higher concurrency
ce261369viewer bench: structural render-cost harness for component-GLB packages
1895a7fcdesign: record edit-path perf notes + viewer large-package rendering plan
f75c2696Cylindrical radial explode; terminal outline/grid; theme tweaks
0524a1baProjection as a theme trait; add Vibrant, restyle stage themes
78bcb0a4Neutral cinematic grade + floor that follows the model
ec457734Tint the glass chrome from the active scene backdrop
c297a397Add Cinematic theme preset with fill/rim theme lighting
13746038cadgen: fall back to in-process builds for BREPs BinTools cannot read back
9dcd1cabcadgen: public compound_from_instances API; SpaceX engine clusters adopt it
2f9b0e9bcadgen: vectorize the GLB payload build with numpy (profiled 55-60% of cold component builds)
eef61419cadgen: topology.glb selector cache + opt-in warm CLI daemon
36c60638cadgen: five profiled quick wins on the build path
7bdc747ecadgen: freshness gates, scale-aware meshing, parallel component builds
bb2bbc6bAdd SpaceX model sources under models/spacex
9cc69340Finish render-package naming; retire --skip-step-write and legacy GLB compat
eaca6c2dRename cadcache to cadgen and delete the legacy artifact-path layer
7ac59c7fMerge pull request #130 from earthtojake/claude/dxf-artifact-pipeline
4ac5ed5ecadjs: token-based DXF layer intent in parseDxf + preview mesh
5052de67Fix remaining DXF review findings: packaging, validation gates, snapshot, exports
c1bd1050Deterministic source-closure capture: pre-run eviction + execution recording
084b8a4dExported DXF files are detached deliverables; rebuilds never touch them
d620b1d3gen_dxf rebuilds remove stale sibling DXF exports
691585d2dxf skill: full generator templates as a skill reference, not a CLI scaffold
62d8d057DXF pipeline round 2: cadgen.flatten, deterministic packages, gen-time validation, snapshots, kerf
2c5ccc88Address DXF pipeline review flags: exports, model fixes, scan resilience, viewer export
e56a613bDXF pipeline parity with STEP: .dxf.py generators + drawing-package cache + viewer auto-regen
b6b97f14Merge remote-tracking branch 'origin/release/0.4.0' into claude/release-0.4.0-rebase-aj688y
da5658adMerge develop into release/0.4.0
88826737Merge pull request #129 from earthtojake/claude/cadpy-pypi-publishing-hiipn6
b2175241Drop deleted urdf/srdf/sdf runtimes from the production build check
4f47faa9Merge pull request #128 from earthtojake/claude/cadpy-pypi-publishing-hiipn6
f5fad4a4Split cadgen into a public API and cadgen._internal engines
24c4efdfPublish cadgen (formerly cadpy) to PyPI from the Release workflow
09fb85a0Merge pull request #127 from earthtojake/claude/urdf-srdf-sdf-xml-gen-zkgk44
2471907bReplace SRDF metadata link with same-folder robot-name pairing
352800f6Bolster URDF/SRDF/SDF validators: findings architecture, new checks, edge-case suites
ed0c5a58Rename skill validators to scripts/validate and remove dead generator code
da7cc7c3Migrate robot-description fixtures to authored XML and add SO101 SDF
9bc95378Rearchitect URDF/SRDF/SDF skills to direct XML authoring with validation-only runtimes
8285c29eAdd tom 1/4-20 tripod camera stand and thread test block
2d9496d4Merge pull request #123 from earthtojake/python-viewer-backend
a9175210viewer: drop dead _step_render_artifact_present helper
41c31b77Remove the Tauri desktop shell; keep the pure web viewer + Python backend
b178524cviewer: show generated models in the catalog, build them on demand
1672f3aedesktop: working packaged macOS app — self-contained runtime + launcher shim
91ffc1b9desktop: per-platform CI + cross-platform packaging fixes
202cdc45desktop: harden the shell from an adversarial scaffold review
6b890d90desktop: Tauri shell scaffold + relocatable Python runtime packaging
1065c6e6bundle: factor Python vendoring into one shared lib
c9a2e14bviewer: persistent warm-OCCT CAD worker (+ warm-closure determinism)
6565bc47cadpy: extract in-process callable cores for step artifact + export
12f407f2viewer: delete the Node backend; Python is the only runtime backend
a40fa411viewer: run the Python backend in dev via a Vite proxy
a543ec78viewer: add parity-verified Python backend (server_py)
4e4c425aviewer: export dropdown supports part entries; simplify labels
7a0319e7viewer: hide stage floor in orthographic projection
3ecf36aagripper: add print-bed STLs (relieved clamps, 1x and 2x P2S)
bdd2c233gripper: relieve clamp tube-slot interference to -0.10mm for 6mm rod
57f2969cgripper: adopt RB9.01.062, rename rb9->tom_gripper, add variants
a79fefbfBump version to 0.4.0
7a458722docs: fix cad-viewer launcher example in AGENTS.md
7c405817viewer + models: .params.js sidecar migration + model-export UI
9d5fcc60viewer: world-z=0 floor (respect absolute Z)
76c7fda1cad: cwd-relative, REPO_ROOT-free STEP CLI + raw-OCCT compose
ed4fdd4dtom: 6-DOF wrist, grounded base, 10 mm clamp spacers + URDF/SRDF
6cc784f9Fix inspect_refs test for entry-keyed render package GLB lookup
e499d925Fix freshness-gate tests for entry-keyed cache; drop stale generation_status test
d72a52d9Regenerate snapshot runtime after rebase onto release/0.5.0
d27c20eaViewer model export + entry-keyed cadcache for .step.py / .step coexistence
db3ce993Consolidate STEP scene cache under cadcache/models/
a0da692fFold generation lock into artifact pull; remove generation-status endpoint
f696c53dConsolidate STEP artifact-generation loading label
c2999a76Friendlier STEP render loading label ("loading topology")
3ea40870Viewer: don't show a loading spinner for un-built entries in the file list
62912761Render-artifact pipeline: client useArtifact cutover + delete old surfaces (phases 3-4)
fd8cd5b5Render-artifact pipeline: shareable server API + unified route (phases 1-2)
a9a12c5aRemove viewer Vercel deploy plumbing (CI, scripts, docs)
b8f9c48eViewer: remove Vercel/remote-blob deployment, keep local-fs only
2a8ee228Viewer: (re)generate stale/missing STEP & Python caches on open
1b0acd4eRegenerate snapshot runtime after develop rebase
7e57c8b6Models: drop committed STEP/GLB artifacts, refresh tom inputs
90672d5aViewer: component-GLB package rendering + topology-tree parity
550b125bIncremental assembly regen: freshness gate, parallel rebuilds, inline scene cache
7a4ec1e2Remove the Metadata section; hide the file sheet when a kind has no sections
b8bf4dafAlign leaf tree-row glyphs under their parent's glyph
a810bc9dRemove the "Default" badge from theme presets
8331deaeTighten the pane divider and unify resizer styling
53e557a9Reference header: type as a muted chip after the label
8e0611bePlace the Parameters tab in the top pane, after Tree
f5970982Reference inspector: tighter rows, include parts, shorter prompt
49289ba9Add a Reference inspector section to the STEP file sheet
25f39fd2Collapse fill colors when not cycling; keep the save button visible on dark
8b6cbd1aRename split Workbench presets to Light/Dark
2abcf08aSplit Workbench into flat light/dark themes; derive app tone from background
e3dec55eRefine appearance editor: clearer save, color mode, and toggle close
77d76166Match theme-button open state to the file sheet; prune the appearance sidebar
3b913b79Add icons to the System/Light/Dark color-mode toggle
aca41ba5Fold the light/dark toggle into the theme dropdown
8ac5967bOpen appearance editing as a global navbar-driven sidebar mode
93684414Compact the file-sheet tabs and add icons to all tree rows
100b6e5aNormalize padding into one coherent system across the viewer
bf580c0eTighten list/row padding across the board for the compact design system
87ef981dRemove icons from the display Style dropdown
da1dac8bRemove the tree 'show more'/'show less' row limit
5fc83ed8Split the file sheet by dragging a tab into the bottom zone
56ffea66Revert SMUI font to the viewer's previous typeface
87d95d46Add local smui design-system skill doc for the viewer
1409e390Keep frosted-glass surfaces in the SMUI theme
f787713eApply SMUI 'spacemolt' design system to the viewer UI
29fc6818Make file sheet tabs square and flush instead of floating pills
6273ea4eRedesign file sheet sidebar as Chrome-inspector tabs下载附件