Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions docs/lastcode/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,37 @@ ceiling used to keep htulo from moving ahead of airy.
The SSH read is non-interactive and requires key-based access; it never opens a
password prompt.

### Daily htulo updates

Htulo's external updater can be installed as a login LaunchAgent:

```bash
pnpm lastcode:daily-update install
pnpm lastcode:daily-update status
pnpm lastcode:daily-update run-now
```

At 04:00 each day it prepares and validates the newest eligible Intel app before
interrupting work. If an update is ready, it uses htulo's local
`lastcode-thread` command to ask every working thread to pause, waits for the
explicit `PAUSED FOR LASTCODE UPDATE` replies, checks once for a newly started
thread, quits LastCode once, swaps the app, launches it once, and tells the
paused threads to resume. A missing reply leaves the prepared update in place
for the next run and does not quit LastCode. Threads that may already have
paused are always queued for a resume; undelivered resumes are kept in
`~/.lastcode/daily-update/pending-resumes.json` and retried before the next
daily update check.

The first update from a LastCode version older than the thread command is a
manual bootstrap after the user has paused work:

```bash
pnpm lastcode:daily-update run --bootstrap
```

`--bootstrap` is never present in the scheduled LaunchAgent. Remove the schedule
with `pnpm lastcode:daily-update uninstall`.

State defaults to `~/.lastcode/intel-updates`. `pending.json` is the narrow,
credential-free handoff contract for later drain and activation work. It names
the immutable tag and commit, expected version and DMG hash, and one candidate
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
"lastcode:build": "mise exec node@24.13.1 -- node scripts/lastcode-build.mjs",
"lastcode:install": "mise exec node@24.13.1 -- node scripts/lastcode-install.mjs",
"lastcode:intel-stage": "mise exec node@24.13.1 -- node scripts/lastcode-intel-stage.mjs",
"lastcode:daily-update": "mise exec node@24.13.1 -- node scripts/lastcode-daily-update.mjs",
"lastcode:setup": "mise exec node@24.13.1 -- node scripts/lastcode-setup.mjs",
"lastcode:checkpoint:service": "mise exec node@24.13.1 -- node scripts/lastcode-nightly-service.ts",
"lastcode:build:mac:arm64": "mise exec node@24.13.1 -- node scripts/lastcode-build-mac.ts --arch arm64",
Expand Down
Loading