Commit graph

23 commits

Author SHA1 Message Date
Claude
f7f42351b9 fix: Handle UTF-16 LE encoded AME logs from Windows
Windows Adobe Media Encoder writes AMEEncodingLog.txt as UTF-16 LE with
BOM. The parser was reading files as UTF-8, producing garbled output where
every character had a null byte between it — causing all regex matching
to fail silently and return zero parsed entries.

Added readFileAutoEncoding() that detects UTF-16 LE/BE BOM and converts
to UTF-8 before parsing. Also handles BOM-less UTF-16 by checking for
null byte patterns.

Additionally improved parser to handle Windows AME log format:
- "File Encoded with warning" status lines (not just "Status: Done")
- "Queue Started/Stopped" lines are now skipped
- "Log File Created" header lines are skipped
- Separator lines (dashes) are skipped
- Offline media warnings and missing asset lines are captured
- "warning" status counts as success in stats

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 17:12:41 -04:00
Claude
d1d4fd0e9d Update: Replace logo and customize header
- Replace /logo.png with /logo.jpg (user's custom logo)
- Update header subtitle to 'Made By an Exhausted Zac Gaetano'
- Copy images.jpg from project folder to public/logo.jpg

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-31 17:02:07 -04:00
Claude
63b303fd01 docs: Add detailed architecture and troubleshooting guide
Explain the host-level SMB mounting approach:
- Why we mount SMB on the host, not in the container (security, reliability)
- Why we bind specific subdirectories instead of the root share (avoid ephemeral volumes)
- How the separation of concerns improves operations and portability

Add troubleshooting section covering:
- Files not appearing on SMB share after upload
- SMB mount failures on host
- Container startup issues
- Step-by-step verification commands

Document the .prproj path remapping rationale and AMPP proxy workflow context.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-31 17:00:21 -04:00
Claude
4f54305abf Fix: Bind SMB subdirectories correctly in docker-compose.yml
Previously, /mnt/smb-ame was mounted as /smb-share in the container, but
/watch, /output, and /ame-logs were separate Docker volumes, causing
uploaded files to be stored in ephemeral volumes instead of the SMB share.

Now bind each SMB subdirectory directly to its corresponding container path:
- /mnt/smb-ame/Watch → /watch
- /mnt/smb-ame/Output → /output
- /mnt/smb-ame/Logs → /ame-logs

This ensures uploaded .prproj files appear on the SMB share where AME can
access them from the watch folder.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-31 16:55:55 -04:00
Claude
6711abb339 fix: Save pendingFile ref before closeModal() nulls it
closeModal() was setting pendingFile = null, then confirmSubmit()
was trying to append the now-null pendingFile to FormData, causing
'No file uploaded' error on every submission.

Fix: capture pendingFile into fileToSubmit before calling closeModal().

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-31 16:42:25 -04:00
Claude
67533c1b24 simplify: Remove unnecessary bind-mounts in entrypoint
- Docker-compose already handles the bind-mounts via volumes config
- Entrypoint now just creates subdirectories and verifies access
- Removes 'Could not bind' warnings that were noise
- Cleaner startup logs

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-31 16:28:44 -04:00
Claude
ba39da5098 fix: Mount SMB root and create subdirectories automatically
- Mount /mnt/smb-ame as /smb-share in container
- Entrypoint creates watch/output/logs subdirectories if missing
- Creates bind-mounts from /smb-share/watch to /watch, etc.
- Graceful fallback if SMB share not mounted on host
- Works without pre-existing subdirectories on SMB server

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-31 16:18:49 -04:00
Claude
1c61d953fd refactor: Switch to host-level SMB mounting (bind-mount approach)
- Remove container-level CIFS mounting (requires SYS_ADMIN capability)
- Use docker-compose.yml bind-mounts from host (/mnt/smb-ame/*)
- Simplify entrypoint.sh to just verify mount points exist
- Include mount command in comments for host setup
- More reliable and doesn't require Docker capability grants

To use:
1. Mount SMB on host: sudo mount -t cifs //172.18.210.5/ame /mnt/smb-ame \
   -o username=smb,password=Production2020!,uid=1000,gid=1000,file_mode=0755,dir_mode=0755,vers=3.0
2. Update /etc/fstab to persist mount across reboots
3. Start container: docker compose up -d

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-31 16:12:59 -04:00
Claude
c40a2ddb89 fix: Use embedded SMB credentials (smb/Production2020!) as fallback
- credentials read from settings first
- env vars override settings
- embedded defaults (smb/Production2020!) used if nothing configured
- allows immediate SMB mount on container startup without config

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-31 16:09:48 -04:00
Claude
aef2b64d4e feat: Add SMB network share auto-mounting support
- Create entrypoint.sh to handle SMB mount on container startup
- Read credentials from settings.json and mount //172.18.210.5/ame
- Bind-mount subdirectories (watch, output, logs) to container paths
- Update Dockerfile with cifs-utils and entrypoint script
- Update docker-compose.yml with SYS_ADMIN capability for mounting
- Add comprehensive SMB configuration section to README
- Include troubleshooting guide and alternative approaches
- Maintain backward compatibility with local volumes
- Never expose passwords to browser (server-side storage only)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-31 16:03:40 -04:00
b1abafd1de Update README.md with documentation 2026-03-31 15:35:26 -04:00
837df373ce Add public/index.html 2026-03-31 15:29:50 -04:00
86086cfc93 Add test-remap.js 2026-03-31 15:29:50 -04:00
8caaeaf13c Add server.js 2026-03-31 15:29:49 -04:00
47ad07366d Add prproj-remapper.js 2026-03-31 15:29:49 -04:00
e90ef6951f Add package.json 2026-03-31 15:29:49 -04:00
a1f839438e Add package-lock.json 2026-03-31 15:29:49 -04:00
9f961ba286 Add Dockerfile 2026-03-31 15:29:48 -04:00
79e2b959e2 Add docker-compose.yml 2026-03-31 15:29:48 -04:00
44c82fdffa Add ame-log-parser.js 2026-03-31 15:29:48 -04:00
e3efa14cd7 Add .env.example 2026-03-31 15:29:48 -04:00
27506fc6ff Add .dockerignore 2026-03-31 15:29:48 -04:00
1bf1ed093c Initial commit 2026-03-31 15:26:09 -04:00