Commit Graph

26 Commits

Author SHA1 Message Date
Tom Boullay 498765db61 refactor: clean upload pipeline and restore draco delivery 2026-04-29 16:29:32 +02:00
Tom Boullay a7155547c5 fix: preserve colliding exported texture variants 2026-04-28 16:02:15 +02:00
Tom Boullay 41e04002b8 fix: normalize exported texture filenames 2026-04-28 15:51:15 +02:00
Tom Boullay 9dc0232e4a fix: validate texture asset names server-side 2026-04-28 00:17:28 +02:00
Tom Boullay dddecbb11c chore: prepare v1.0.0 release 2026-04-27 23:43:16 +02:00
Tom Boullay 31c05a35fc fix: canonicalize asset families 2026-04-27 23:35:43 +02:00
Tom Boullay fa77c484f9 fix: enforce asset naming convention 2026-04-27 23:29:47 +02:00
Tom Boullay b084c0e20e fix: batch Git LFS uploads 2026-04-27 23:17:56 +02:00
Tom Boullay 5556364601 fix: resolve gltf companion assets reliably 2026-04-27 23:01:29 +02:00
Tom Boullay aeb0832409 chore: remove stale comments 2026-04-27 17:22:53 +02:00
Tom Boullay 382b28103e fix: avoid hiding remote lookup errors 2026-04-27 17:22:26 +02:00
Tom Boullay fd586f4185 refactor: strengthen upload boundary types 2026-04-27 17:21:44 +02:00
Tom Boullay d049318a73 refactor: consolidate upload helpers 2026-04-27 17:20:54 +02:00
Tom Boullay 43cf48cc7d chore: remove legacy blender compression path 2026-04-27 17:20:13 +02:00
Tom Boullay 4c3a687ff8 fix: support gltf uploads with local preview 2026-04-27 11:07:16 +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 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 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 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