Readme

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.