Documentation format rule: this package uses .txt, .html, and .json documentation. Required .md documentation is not used. MyAnythingList Daily Build Auto Uploader ---------------------------------------- **No IIS, PHP, MySQL, Apache, Node.js, Docker, or local web server required.** Start with: QUICK-START.txt docs/simple-windows-setup-no-server-required.txt Purpose: Download a verified MyAnythingList daily build ZIP, extract only the approved app/defaults/docs payload locally, and mirror that approved local date folder to the configured S3 beta daily-builds location. It ignores normal Chrome downloads and refuses ZIPs that do not match the exact MyAnythingList daily build pattern. Intended workflow: 1. Download `index_beta_YYYY-MM-DD-v###.zip` into your normal download/default directory. 2. The watcher notices only matching `index_beta_YYYY-MM-DD-v###.zip` ZIPs. 3. It waits until the file is stable. 4. It validates the ZIP contents, then extracts only the approved app/defaults/docs files into the matching local daily-builds date folder. 5. It syncs the extracted files to the configured S3 prefix. 6. You open the hosted S3/CloudFront daily build URL and test. No S3 Browser manual sort/upload dance should be required. Requirements ------------ - Windows 11 - PowerShell 5.1 or later - AWS CLI v2 installed - AWS credentials already configured on the PC - Permission to upload to the configured S3 bucket/prefix Check AWS CLI: aws --version aws sts get-caller-identity First setup ----------- 1. Edit: config\settings.ps1 2. Set your real values: $Settings.S3Bucket = "YOUR-BUCKET-NAME" $Settings.S3PrefixTemplate = "beta/_daily-builds/{date}/" $Settings.DownloadWatchFolder = "$env:USERPROFILE\Downloads" $Settings.LocalDailyBuildsRoot = "C:\YOUR\LOCAL\_daily-builds" 3. For the first run, keep: $Settings.DryRun = $true 4. Run: powershell -ExecutionPolicy Bypass -File .\scripts\run-once.ps1 5. If the dry run looks correct, set: $Settings.DryRun = $false 6. Install the silent startup watcher: powershell -ExecutionPolicy Bypass -File .\scripts\install-scheduled-task.ps1 Manual one-time upload ---------------------- powershell -ExecutionPolicy Bypass -File .\scripts\run-once.ps1 Start watcher in the current window ----------------------------------- powershell -ExecutionPolicy Bypass -File .\scripts\watch-downloads.ps1 Install background watcher -------------------------- powershell -ExecutionPolicy Bypass -File .\scripts\install-scheduled-task.ps1 Uninstall background watcher ---------------------------- powershell -ExecutionPolicy Bypass -File .\scripts\uninstall-scheduled-task.ps1 Core rule --------- The public app build remains standalone. This uploader is only a developer convenience layer. The uploader must never become a requirement for the public beta to work. Strict processing rule ---------------------- The watcher only processes files matching: index_beta_YYYY-MM-DD-v###.zip The ZIP must contain only approved MyAnythingList daily build payload files: index_beta_YYYY-MM-DD-v###.html _MyAnythingList-defaults.txt docs/YYYY-MM-DD/v###/en-us/controllable-parameters.html It refuses normal downloads, screenshots, PDFs, unrelated ZIPs, partial Chrome downloads, and ZIP files containing unexpected payloads. File Explorer timestamp sorting rule ------------------------------------ After extracting an approved daily build, v006 touches the extracted app/defaults/docs payload and local date folder to the current local time so the newest extracted build appears at the top when sorted by Date modified. Developer-local package timestamp rule -------------------------------------- Package HHMM must be the actual America/Los_Angeles local time when the artifact is created. Do not invent, estimate, round forward, or use a future timestamp.