Commit Graph

36 Commits

Author SHA1 Message Date
Tom Boullay 473fa0f6e1 fix: apply opacity maps in preview 2026-04-27 17:19:21 +02:00
Tom Boullay 2a7be1dd52 style: align model stats helper 2026-04-27 17:12:11 +02:00
Tom Boullay 77bdb7748b docs: document model stats helper 2026-04-27 17:10:18 +02:00
Tom Boullay d9c47c16eb feat: add model stats helper to viewer 2026-04-27 17:04:38 +02:00
Tom Boullay 3244b70bbf feat: support opacity maps in gltf preview 2026-04-27 14:47:36 +02:00
Tom Boullay 4c3a687ff8 fix: support gltf uploads with local preview 2026-04-27 11:07:16 +02:00
Tom Boullay 078e687e86 style: improve verification button state 2026-04-24 17:53:24 +02:00
Tom Boullay 04ad0b136b style: emphasize upload progress message 2026-04-24 17:51:35 +02:00
Tom Boullay 71bcf2b36d refactor: stage uploads before drive and git delivery 2026-04-24 17:41:38 +02:00
Tom Boullay 53c4c0ed60 fix: prevent duplicate uploads and group asset commits 2026-04-24 16:58:49 +02:00
Tom Boullay fe8a6f0f54 refactor: simplify upload UI and enforce glb-only preview 2026-04-24 16:40:55 +02:00
Tom Boullay 944959fc22 refactor: simplify upload rules and remove destination flow 2026-04-24 16:23:02 +02:00
Tom Boullay 61a0146545 update: drag and drop + compression des textures 2026-04-24 15:37:45 +02:00
Tom Boullay 8bbc0dc0eb fix: push files via Git LFS instead of raw blobs
Binary files (.glb, .gltf, .png, .jpg, .jpeg, .webp) were pushed as raw
Git blobs via Octokit, bypassing Git LFS. This caused LFS-tracked repos
to see all files as modified after git pull, requiring spurious commits.

Now the bot uploads binaries to the LFS server via the Batch API and
stores LFS pointer files in the Git tree. Also fixes getRemoteFolder()
to read the real file size from LFS pointers instead of the pointer size.
2026-04-15 09:38:05 +02:00
Tom Boullay 616eb26206 fix: add curl to Docker image for Coolify healthcheck 2026-04-14 18:41:54 +02:00
Tom Boullay 78f4aa83e0 refactor: full codebase audit — extract modules, fix type safety, clean dead code
- Extract API helpers from UploadZone into lib/upload-api.ts (FormData builder, checkFolderDiffs, uploadDrive, uploadGit)
- Extract upload orchestration into hooks/useUploadOrchestrator.ts (UploadZone: 489 → 162 lines)
- Extract file diff classification into lib/diff-files.ts (from git route)
- Extract shared SVG icons into components/ui/icons.tsx (7 icons, 0 duplication)
- Extract shared modal wrapper into components/ui/Modal.tsx + ModalActions
- Extract DriveStatusLine sub-component from FolderCard
- Fix checkFolderDiffs silently swallowing auth/network errors (now throws)
- Fix type safety: remove as never casts, add isHttpError type guard, use discriminated union for validateFolder
- Fix nextcloud: cache getConfig, add max bound to findNextVersion, optimize mkdirRecursive (skip PROPFIND)
- Fix drive route: remove req.clone(), extend parseMultiUpload to return extra fields
- Fix commit message: model shown as unchanged with ↔️ on updates (not falsely marked as modified)
- Clean dead code: unused folderExists import, FileStatus/DriveStatus exports, ParsedFile.textureName, getConfig basePath
- Add security headers in next.config.ts (HSTS, X-Content-Type-Options, X-Frame-Options, etc.)
- Update README with new project structure
2026-04-14 17:19:10 +02:00
Tom Boullay 110d64ec33 fix: some bugs 2026-04-14 16:57:23 +02:00
Tom Boullay 3a7a5e2eea upadte: clean code + add next cloud 2026-04-14 16:21:37 +02:00
Tom Boullay 3adcf9d30e fix: skip model size comparison in diff check (Blender compression changes size)
Models are always re-pushed server-side since Draco compression changes
the file size, making client/remote size comparison unreliable.
Textures are still compared by size (not compressed, reliable).
Client-side diff now only flags models as 'new' if absent from remote,
and never as 'changed' (server handles the actual push decision).
2026-04-14 14:48:59 +02:00
Tom Boullay 91eaa5d186 fix: replace SHA comparison with file size for LFS compatibility + add NoChangesModal
Git LFS stores pointer files whose SHA differs from the actual blob SHA,
causing false-positive diffs on every upload. Switching to file size
comparison resolves this for LFS-enabled repos.

Also replaces the inline error message with a dedicated NoChangesModal
when no differences are detected, offering cancel (reset) or modify
(close modal) actions.
2026-04-14 14:39:19 +02:00
Tom Boullay f9e15d5e1f fin du refactp 2026-04-14 14:27:50 +02:00
Tom Boullay e9ae6ffc41 debut refacto 2026-04-14 14:18:40 +02:00
Tom Boullay ab9685b6ee upatde: dockerfile init blender 2026-04-14 14:06:04 +02:00
Tom Boullay 2b3d02e489 update: add gestion erreur si dossier est existant 2026-04-14 13:26:49 +02:00
Tom Boullay c795082ca4 fix: one commit 2026-04-14 12:17:06 +02:00
Tom Boullay 76d9c21929 upatde: add docker for coolify 2026-04-14 11:18:53 +02:00
Tom Boullay 0a3d159bad update: remove docker 2026-04-14 10:54:43 +02:00
Tom Boullay 58826ac98a Update layout.tsx 2026-04-05 12:45:51 +02:00
Tom Boullay 348e281ee6 fix: issue on viewer 2026-04-05 12:32:38 +02:00
Tom Boullay adeca383bc update: fix packages 2026-04-03 13:45:23 +02:00
Tom Boullay 7ce3d61110 update: add a gltf viewer 2026-04-03 11:32:56 +02:00
Tom Boullay a44cd5dab3 Update README.md 2026-04-03 10:43:24 +02:00
Tom Boullay 9e27a64ae5 Update README.md 2026-04-03 10:42:40 +02:00
Tom Boullay 5007a255da update: add gitgnore 2026-04-03 10:41:56 +02:00
Tom Boullay a730946ad2 init du repo 2026-04-03 10:22:24 +02:00
Tom Boullay 929b1075d4 Initial commit 2026-04-03 10:18:14 +02:00