Files
Brandon LiandClaude Opus 5.5 13e03c3d0f Updater heals itself: PM2 cron revived, Update now, failure reasons
PM2's cron for autofirmer-update dies inside a live daemon (six Windows
machines in October), and nothing on the machine noticed. The app now
watches scripts/.last-check and, past 10 minutes, runs
update-check.mjs --heal: a checker PM2 still lists is restarted (which
re-registers its cron), one it lost is registered again, and one whose
errored entry still holds a live pid is left alone, since PM2 would kill
that pid. The heal scrubs PM2's per-app fields from its environment first.

The master's new 'update-now' command runs --heal --now, skipping a
failed update's retry wait. A failed pull, npm install or build records
one line of reason (or the chown to run when a file isn't ours), which
rides on .last-check to the master. A package-lock.json rewritten by npm
is put back before the pull. The fetch timeout drops under the cron's
minute. scripts/.no-auto-update opts a checkout out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 00:41:04 -05:00

91 lines
1.6 KiB
Plaintext

# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions
# testing
/coverage
# next.js
/.next/
/out/
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# env files (can opt-in for committing if needed)
.env*
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts
# local runtime artifacts
*.sqlite
dev.log
dev.err
nul
scripts/lucid-cookies.json
scripts/lucid-config.json
scripts/*.png
autotrader.sqlite
# python
__pycache__/
*.pyc
# generated by the Windows setup / autostart scripts
scripts/.deps-hash
scripts/.python-cmd
scripts/.update.lock
scripts/update.log
# updater bookkeeping (scripts/update-check.mjs)
scripts/.built-commit
scripts/.update-failed
scripts/update-worker.log
# present = this checkout is never auto-updated or healed (a dev checkout)
scripts/.no-auto-update
# the previous build, set aside while the updater builds (Tailwind's source
# scan also honours this, so it never reads the old bundles)
/.next-prev/
# clicker virtualenv (Linux/Pi)
clicker/.venv/
scripts/.last-check
# The deploy template is meant to be read, unlike a real .env
!deploy/.env.example
# publish bookkeeping
deploy/publish.log
deploy/.last-check
deploy/.publish.lock
*.sqlite-shm
*.sqlite-wal
# per-instance databases (add-instance.sh)
.data/
# per-device instance registry (add-instance.sh)
scripts/instances.json
# yarn is dev-convenience only; npm/package-lock.json governs the fleet
yarn.lock