Add live refresh using Vite in Docker runtime environment#4
Add live refresh using Vite in Docker runtime environment#4mikhail-shevtsov-wiregate wants to merge 2 commits into
Conversation
8637df4 to
86eabb4
Compare
|
@CNCKitchen I've rebased my PR according to latest commit to resolve conflicts. Please review. Let me know if you have any question/suggestion. |
Configure Vite for building and serving the application. Introduce Docker-based development and production environments. Add multi-stage Dockerfile for building and serving the application. Provide docker-compose configuration for container orchestration. Include Nginx configuration template for production deployment. Update README with instructions for Docker-based workflows. Define project dependencies and scripts in package.json. Update gitignore to exclude build artifacts and dependencies.
86eabb4 to
831610b
Compare
|
@CNCKitchen I've rebased my PR according to latest commit to resolve any conflicts. Tested build - everything works as expected. |
8 findings (confirmés/suspectés) avec file:line. Deux racines : double-état global↔slot (CNCKitchen#4 = étape 3) et persistance sédimentée (CNCKitchen#1 clé morte, CNCKitchen#2 clé surchargée, CNCKitchen#3 dérive d'échelle cylindrique, CNCKitchen#8 formats divergents). Ordre de correction proposé. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
CNCKitchen#4 (source unique de vérité) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… lecteurs de slot Premier pas vers la source unique de vérité. Les lecteurs choisissaient chacun leur source (globals du slot actif vs champs stockés) → divergences : slotHasContent OR-ait les deux ; getSlotFaceCount ne lisait que les champs stockés (donc faux pour le slot actif non encore sauvegardé). resolveSlotState(slot, isActive, liveGlobals) canalise TOUT lecteur par une règle unique : globals live pour le slot actif (autoritaires car les plus frais), champs stockés sinon. + stateHasContent / stateFaceCount dérivés. Logique pure dans slotState.js, 4 tests headless (dont "le live vide gagne sur le champ stocké périmé" — le vrai sens de CNCKitchen#4). main.js délègue via getSlotState/liveSlotGlobals. Changement de comportement (voulu) : le slot actif ne signale plus de contenu "fantôme" venant de champs stockés périmés ; il reflète l'état live. liveSlotGlobals n'est calculé que pour le slot actif (évite N× computeAssignedFaces au refresh). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…State Suite de la source unique de vérité. Migrés vers resolveSlotState/getSlotState : - getSlotOverlapCount : résout les assignedFaces de CHAQUE slot une fois (le slot actif via les globals live) → l'overlap ne se calcule plus contre le set stocké périmé du slot actif. - getSlotTooltip : map/mode/faces via l'état résolu. - renderTextureTabs (meta + miniature) : map/entry via l'état résolu. Restant légitime : restoreSlotState (= le point de sync slot→globals) et serializeProjectTextureSlots (commence par saveActiveSlotState, donc lit du frais). Tous les lecteurs d'UI live sont désormais cohérents — plus aucun ne peut diverger sur l'état du slot actif. Suite verte (10 ok). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… ; mirror-removal optionnel Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
EllaFoxo
left a comment
There was a problem hiding this comment.
Nice addition; Vite is quite handy to have. Could also be extended later into the CI/CD pipeline. I'd recommend checking with @CNCKitchen first about the change of directory structure.
| @@ -0,0 +1,32 @@ | |||
| FROM node:24-alpine AS base | |||
There was a problem hiding this comment.
Would recommend pinning to lts-alpine instead
| - **Texture smoothing** — configurable blur to soften the displacement map before applying | ||
|
|
||
| ### Projection Modes | ||
|
|
There was a problem hiding this comment.
Would recommend not changing the formatting in places you don't need to; keeps this PR easy to rebase then.
I don't mind updating to the latest branch - it's just would be good to hear owner @CNCKitchen opinion on this. If he ever needs it. |
|
This is exactly what I was looking for. I'd really appreciate if this was merged into main! |
Closes #21
Goal
Add ability to run project locally without worrying about installation of node.js
New Dependencies
New Features
Affected flow
src/directory;Future recommendations
Demo
stlTexturizer-vite-docker.mp4