···77OVEN_HOST="137.184.237.166"
88SSH_KEY="${SSH_KEY:-$(dirname "$0")/../aesthetic-computer-vault/oven/ssh/oven-deploy-key}"
99REMOTE_DIR="/opt/oven"
1010+NATIVE_GIT_FETCH_URL="${NATIVE_GIT_FETCH_URL:-https://tangled.org/aesthetic.computer/core.git}"
1011SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
1112AC_SOURCE="$SCRIPT_DIR/../system/public/aesthetic.computer"
1213FEDAC_SOURCE="$SCRIPT_DIR/../fedac"
···222223# Set up native git repo for auto-polling OTA builds
223224echo ""
224225echo "📦 Setting up native git repo for OTA auto-builds..."
226226+echo " Fetch remote: $NATIVE_GIT_FETCH_URL"
225227ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no "root@$OVEN_HOST" "
228228+set -euo pipefail
226229NATIVE_GIT_DIR=/opt/oven/native-git
230230+NATIVE_GIT_FETCH_URL='$NATIVE_GIT_FETCH_URL'
227231if [ ! -d \$NATIVE_GIT_DIR/.git ]; then
228232 echo ' Cloning repo (first time)...'
229229- git clone --branch main --single-branch https://github.com/whistlegraph/aesthetic-computer.git \$NATIVE_GIT_DIR
233233+ git clone --branch main --single-branch \$NATIVE_GIT_FETCH_URL \$NATIVE_GIT_DIR
230234else
231235 echo ' Git repo exists, fetching latest...'
232232- cd \$NATIVE_GIT_DIR && git fetch origin main --quiet && git merge origin/main --ff-only --quiet || true
236236+ cd \$NATIVE_GIT_DIR
237237+ git remote set-url origin \$NATIVE_GIT_FETCH_URL
238238+ git fetch origin main --quiet || true
239239+ git branch --set-upstream-to=origin/main main >/dev/null 2>&1 || true
240240+ if git rev-parse --verify origin/main >/dev/null 2>&1 && git merge-base --is-ancestor HEAD origin/main; then
241241+ git merge origin/main --ff-only --quiet || true
242242+ else
243243+ echo ' Repo has local commits or divergence; leaving checkout as-is (native build preflight will hard-sync to origin/main).'
244244+ fi
233245fi
234246if id -u oven >/dev/null 2>&1; then
235247 chown -R oven:oven \$NATIVE_GIT_DIR
···248260OVEN_GH_TOKEN=\$(grep '^OVEN_GH_TOKEN=' $REMOTE_DIR/.env 2>/dev/null | cut -d= -f2-)
249261if [ -n \"\$OVEN_GH_TOKEN\" ]; then
250262 cd \$NATIVE_GIT_DIR
251251- # Set push URL with token authentication (fetch stays anonymous HTTPS)
263263+ # Keep fetch on Tangled, but push papers auto-build commits to the GitHub mirror.
252264 git remote set-url --push origin https://x-access-token:\${OVEN_GH_TOKEN}@github.com/whistlegraph/aesthetic-computer.git
253265 echo ' Push URL configured with token auth'
254266else
+2-2
oven/native-git-poller.mjs
···11// native-git-poller.mjs — polls git for fedac/native/ changes, auto-triggers OTA builds
22//
33// Runs inside the oven server. Every POLL_INTERVAL_MS (default 60s), fetches
44-// origin/main and checks if any fedac/native/ paths changed since the last
44+// origin/main from the configured native checkout remote and checks if any fedac/native/ paths changed since the last
55// successful build. If so, pulls and triggers startNativeBuild().
66//
77// Requires a git clone at GIT_REPO_DIR (default /opt/oven/native-git/).
···175175 logFn(
176176 "error",
177177 "⚠️",
178178- `Native git poller disabled — repo dir not found: ${GIT_REPO_DIR}. Run: git clone --branch main https://github.com/whistlegraph/aesthetic-computer.git ${GIT_REPO_DIR}`
178178+ `Native git poller disabled — repo dir not found: ${GIT_REPO_DIR}. Run: git clone --branch main https://tangled.org/aesthetic.computer/core.git ${GIT_REPO_DIR}`
179179 );
180180 });
181181}