Franci Penov
e366df6889
fix(cli): treat a fork's upstream sync as an update
...
On a fork, `hermes update` compares HEAD against origin/main, and only then
syncs the fork from upstream — inside the `commit_count == 0` branch, which
returns immediately afterwards. So an update that pulls hundreds of commits
from upstream prints "Already up to date!" and skips everything the
post-update path does, including the dependency sync and the gateway restart.
Observed on a fork-based deployment: 1654 commits pulled, "Already up to
date!", and the launchd gateway left running. It then held pre-update modules
in memory while lazily importing post-update ones, and failed later with an
AttributeError for a method that plainly exists on disk — a mixed runtime that
looks nothing like an update problem. Correlating every run in update.log, a
restart happened on exactly the runs that pulled upstream *without* also
claiming to be up to date, and never once they started co-occurring.
Decide before the branch: capture HEAD, sync, and if HEAD moved, set
commit_count from the range so the normal post-update path runs. The pull that
follows is a no-op (the sync updates origin too); reaching the restart is the
point. commit_count is floored at 1 — HEAD moving *is* the update, so a failed
or zero count query must not send us back down the early return.
steps still being skipped afterwards.
Refs #73108
2026-08-23 00:19:46 -07:00
..
2026-08-22 23:25:29 -07:00
2026-08-19 19:22:48 -07:00
2026-08-22 23:25:43 -07:00
2026-08-16 06:29:53 -07:00
2026-08-16 22:06:24 -07:00
2026-08-21 13:01:35 -07:00
2026-08-20 01:47:06 -07:00
2026-08-21 14:39:02 -07:00
2026-08-16 06:25:46 -07:00
2026-08-22 19:30:10 -07:00
2026-08-16 06:32:08 -07:00
2026-08-16 06:31:26 -07:00
2026-08-21 15:23:51 -07:00
2026-08-19 19:34:36 -07:00
2026-08-16 01:52:00 -07:00
2026-08-17 15:47:17 -07:00
2026-08-23 00:19:46 -07:00
2026-08-18 12:51:36 -07:00
2026-08-15 02:04:49 -07:00
2026-08-20 04:08:57 -07:00
2026-08-16 11:34:40 -07:00
2026-08-22 02:25:12 -04:00
2026-08-20 01:46:54 -07:00
2026-08-16 22:18:04 -07:00
2026-08-19 19:22:48 -07:00
2026-08-17 11:29:10 -07:00
2026-08-17 02:27:37 -07:00
2026-08-20 20:21:12 -07:00
2026-08-18 14:26:16 -07:00
2026-08-16 01:55:25 -07:00
2026-08-21 22:33:45 +05:30
2026-08-19 19:24:41 -07:00
2026-08-22 21:36:44 -07:00
2026-08-17 02:56:17 -07:00
2026-08-17 14:02:07 +05:30
2026-08-19 23:03:58 -07:00
2026-08-15 03:54:07 -07:00
2026-08-22 13:39:04 -04:00
2026-08-22 13:38:56 -04:00
2026-08-15 03:54:07 -07:00
2026-08-22 23:46:06 -07:00
2026-08-15 18:15:13 -07:00
2026-08-21 14:13:28 +10:00
2026-08-16 01:54:35 -07:00
2026-08-16 02:01:15 -07:00
2026-08-21 03:51:03 -07:00
2026-08-16 21:17:47 -07:00
2026-08-22 15:27:26 +05:30
2026-08-16 06:26:12 -07:00
2026-08-20 23:41:00 -07:00
2026-08-21 02:48:14 +08:00
2026-08-18 16:08:29 -07:00
2026-08-19 19:42:31 -07:00
2026-08-19 16:10:01 -07:00
2026-08-16 13:01:20 -07:00
2026-08-21 14:38:41 -07:00
2026-08-19 23:28:14 -05:00
2026-08-22 22:00:19 -07:00
2026-08-18 11:58:48 -07:00
2026-08-17 14:16:21 +05:30
2026-08-17 14:16:21 +05:30
2026-08-17 14:16:21 +05:30
2026-08-16 21:56:30 -07:00
2026-08-21 13:41:39 -07:00
2026-08-18 14:26:16 -07:00
2026-08-18 16:08:29 -07:00
2026-08-18 20:42:06 -04:00
2026-08-15 02:03:24 -07:00
2026-08-19 23:15:01 -07:00
2026-08-17 12:58:51 -07:00
2026-08-21 14:38:19 -07:00
2026-08-18 14:26:16 -07:00
2026-08-17 12:58:51 -07:00
2026-08-20 20:21:12 -07:00
2026-08-18 14:26:16 -07:00
2026-08-19 01:19:28 -07:00
2026-08-19 23:28:14 -05:00
2026-08-22 21:36:55 -07:00
2026-08-19 19:41:52 -07:00
2026-08-21 04:44:15 -07:00
2026-08-17 16:34:22 -07:00
2026-08-16 22:08:37 -07:00
2026-08-17 17:23:30 -07:00
2026-08-19 08:52:03 -07:00
2026-08-19 08:52:03 -07:00
2026-08-16 11:34:40 -07:00
2026-08-20 04:30:33 -07:00
2026-08-20 04:47:38 -07:00
2026-08-18 02:27:18 -07:00
2026-08-17 02:11:27 -07:00
2026-08-21 00:24:32 -07:00
2026-08-21 00:24:32 -07:00
2026-08-20 01:46:20 -07:00
2026-08-15 14:24:35 -07:00
2026-08-19 23:28:14 -05:00
2026-08-19 08:52:03 -07:00
2026-08-17 15:47:17 -07:00
2026-08-20 04:50:39 -07:00
2026-08-21 00:24:32 -07:00
2026-08-21 14:38:41 -07:00
2026-08-16 02:03:22 -07:00
2026-08-16 02:14:35 -07:00
2026-08-20 12:37:16 -05:00
2026-08-15 02:04:49 -07:00
2026-08-15 02:04:49 -07:00
2026-08-16 01:55:25 -07:00
2026-08-20 02:06:05 -07:00
2026-08-16 22:09:17 -07:00
2026-08-20 11:36:54 +05:30
2026-08-22 19:30:10 -07:00
2026-08-19 01:23:17 +05:30
2026-08-19 10:19:35 -07:00
2026-08-20 02:58:31 +05:30
2026-08-20 02:58:31 +05:30
2026-08-20 03:05:46 -07:00
2026-08-16 01:54:35 -07:00
2026-08-19 16:10:01 -07:00
2026-08-20 03:05:46 -07:00
2026-08-21 04:44:15 -07:00
2026-08-15 18:15:18 -07:00
2026-08-19 19:34:36 -07:00
2026-08-19 16:10:01 -07:00
2026-08-16 01:59:58 -07:00
2026-08-22 23:10:32 -04:00
2026-08-20 04:54:14 -07:00
2026-08-19 13:17:44 -05:00
2026-08-19 02:10:37 -05:00
2026-08-20 02:45:57 -07:00
2026-08-16 10:51:50 -07:00
2026-08-20 04:14:42 -07:00
2026-08-17 23:53:05 -07:00
2026-08-21 04:23:13 -07:00
2026-08-21 03:51:03 -07:00
2026-08-21 15:23:49 -07:00
2026-08-21 03:44:55 -07:00
2026-08-15 13:28:14 -07:00
2026-08-15 03:54:07 -07:00
2026-08-22 19:30:10 -07:00
2026-08-20 03:43:00 -07:00
2026-08-20 12:41:33 -05:00
2026-08-16 10:51:50 -07:00
2026-08-20 05:02:36 -07:00
2026-08-16 22:07:09 -07:00
2026-08-15 02:45:27 -07:00
2026-08-21 22:08:16 -07:00
2026-08-21 22:08:16 -07:00
2026-08-21 22:08:16 -07:00
2026-08-21 19:11:55 -07:00
2026-08-21 19:11:55 -07:00
2026-08-19 16:10:01 -07:00
2026-08-15 01:05:39 -07:00
2026-08-16 11:34:40 -07:00
2026-08-19 01:23:39 -05:00
2026-08-15 01:53:34 -07:00
2026-08-16 20:32:09 -07:00
2026-08-16 20:53:44 -07:00
2026-08-16 21:54:31 -07:00
2026-08-23 02:55:03 +05:30
2026-08-16 01:59:58 -07:00
2026-08-22 21:36:44 -07:00
2026-08-22 13:38:56 -04:00
2026-08-20 01:45:56 -07:00
2026-08-19 23:55:20 -07:00