diff --git a/CLAUDE.md b/CLAUDE.md --- a/CLAUDE.md +++ b/CLAUDE.md @@ -74,7 +74,7 @@ ``` ### AC Native OS (fedac/native/) -**Routine OTA releases are built remotely on the oven.** When fedac/native/ changes land on `origin/main`, oven's git poller auto-triggers a build. +**Routine OTA releases are built remotely on the oven, and you must ask for them.** Landing fedac/native/ changes on `origin/main` builds nothing — the oven's native git poller ships disabled (`NATIVE_POLL_INTERVAL_MS` defaults to 0), so pushing and waiting means the published OTA silently stays stale. Run `ac-os oven` to release. ```bash ac-os oven # Trigger remote OTA build for HEAD diff --git a/fedac/native/SCORE.md b/fedac/native/SCORE.md --- a/fedac/native/SCORE.md +++ b/fedac/native/SCORE.md @@ -16,12 +16,13 @@ ## Release Procedure ### Default path: remote OTA via oven (preferred) -OTAs are built remotely on `oven.aesthetic.computer`. After landing -fedac/native/ changes on `origin/main`, the oven git poller auto-triggers -a build — but you can also trigger and observe explicitly: +OTAs are built remotely on `oven.aesthetic.computer`, and every one is +asked for. The oven's native git poller ships disabled, so landing changes +on `origin/main` builds nothing and the published OTA stays where it was +until someone runs the trigger. Releasing is a separate act from merging: ```bash -ac-os oven # Trigger remote OTA build for HEAD (or push to main) +ac-os oven # Trigger remote OTA build for HEAD — required to release ac-os oven status # Show oven build queue + last builds ac-os oven watch # Tail logs for the active oven build (SSE) ac-os oven cancel # Cancel the active oven job diff --git a/oven/native-git-poller.mjs b/oven/native-git-poller.mjs --- a/oven/native-git-poller.mjs +++ b/oven/native-git-poller.mjs @@ -1,8 +1,15 @@ -// native-git-poller.mjs — polls git for fedac/native/ changes, auto-triggers OTA builds +// native-git-poller.mjs — optional git poller for fedac/native/ OTA builds +// +// OFF unless NATIVE_POLL_INTERVAL_MS is set, and nothing in this repo sets it: +// native OTAs are released deliberately, by `ac-os oven`, not by merging. The +// papers poller is the one that runs on a timer (60s); this one and recap's +// both default to 0. Leave it that way unless the intent is that every commit +// touching fedac/native/ ships to devices on its own. // -// Runs inside the oven server. Every POLL_INTERVAL_MS (default 60s), fetches -// origin/main from the configured native checkout remote and checks if any fedac/native/ paths changed since the last -// successful build. If so, pulls and triggers startNativeBuild(). +// When enabled it runs inside the oven server: every POLL_INTERVAL_MS it +// fetches origin/main from the configured native checkout, checks whether any +// fedac/native/ path changed since the last successful build, and if so pulls +// and triggers startNativeBuild(). // // Requires a git clone at GIT_REPO_DIR (default /opt/oven/native-git/). // deploy.sh sets this up on first deploy.