Teknium
401efb0b2b
refactor(cli): decompose _cmd_update_impl into phase helpers, unify duplicated update helpers, compact comments
hermes_cli/update_cmd.py 11217 -> 10204 LOC; _cmd_update_impl 2797 -> 521 LOC.
Decomposition (behavior-neutral, AST free-name verified) — _cmd_update_impl is
now a thin orchestrator calling, in order:
_clear_windows_venv_holders_or_exit -> _prepare_checkout_for_update
(-> _CheckoutPlan) -> _repair_current_checkout | _pull_updates ->
_sync_python_dependencies_after_pull -> _run_post_update_maintenance ->
_restart_gateway_fleet_after_update (-> _GatewayRestartOutcome;
_restart_systemd_gateway_units) -> _resume_windows_gateways_and_merge_outcome
-> _verify_fleet_after_update. _resolve_manage_cmd hoisted to module level.
Unified helpers: _git_run (49 captured git subprocess.run sites),
_systemctl / _systemctl_reset_and_restart (17 sites + 2 pairs),
_sweep_bytecode_after_update (3x), _print_bundled_skills_sync_report (ZIP+git),
_ensure_venv_pip (ZIP+git), _self_and_non_gateway_ancestor_pids (2x),
_record_update_step (4x), _write_gateway_update_exit_code for the 3 inline
".update_exit_code" writes. Dropped duplicate nested copies of
_wait_for_service_active/_service_restart_sec/_print_items, dead
upstream_exists, a dead if/pass branch and unused imports.
Comments/docstrings hand-compacted (236 blocks, AST-identical with docstrings
normalized); rationale/invariant sentences kept.
Tests: source-inspection guards repointed to the helper that now owns the code
(test_update_self_lock, test_update_fleet_check_fail_closed,
test_update_apply_shallow_count); new regression test drives the real Windows
resume/merge helper.
2026-09-02 13:30:54 -07:00
..
2026-09-02 01:15:58 -07:00
2026-08-12 18:52:08 -07:00
2026-09-01 16:01:53 -04:00
2026-08-28 15:22:16 +10:00
2026-09-03 01:56:32 +05:30
2026-09-02 20:16:14 +05:30
2026-09-03 01:56:47 +05:30
2026-08-31 12:29:27 -07:00
2026-08-23 01:47:26 -07:00
2026-08-23 01:47:26 -07:00
2026-08-28 05:15:06 -07:00
2026-09-01 01:30:09 -07:00
2026-08-20 03:05:46 -07:00
2026-09-02 10:33:43 -07:00
2026-08-31 12:36:33 -07:00
2026-08-02 14:55:32 +05:30
2026-08-08 23:56:46 -07:00
2026-08-27 13:27:24 +05:30
2026-08-12 16:26:55 -07:00
2026-08-07 08:57:39 -07:00
2026-08-07 08:57:39 -07:00
2026-08-31 11:19:05 -07:00
2026-09-02 00:58:29 -07:00
2026-09-02 09:57:39 -07:00
2026-07-11 12:28:55 +05:30
2026-09-01 16:01:53 -04:00
2026-07-31 21:21:20 -07:00
2026-09-02 12:34:26 -07:00
2026-08-07 17:45:06 +05:30
2026-08-29 20:07:53 -07:00
2026-08-20 21:54:25 -07:00
2026-08-19 19:34:36 -07:00
2026-09-02 06:17:10 -07:00
2026-08-08 15:10:35 +05:30
2026-08-16 06:32:08 -07:00
2026-09-02 05:33:13 -07:00
2026-07-29 11:53:39 -07:00
2026-09-02 05:33:13 -07:00
2026-08-24 15:42:58 +05:30
2026-07-29 08:42:16 -07:00
2026-08-23 02:14:35 -07:00
2026-07-01 23:51:54 +05:30
2026-09-02 05:33:13 -07:00
2026-06-01 19:51:03 -07:00
2026-09-02 10:22:30 -07:00
2026-09-02 06:16:54 -07:00
2026-09-02 06:19:03 -07:00
2026-08-27 13:27:24 +05:30
2026-09-02 05:34:28 -07:00
2026-07-22 21:17:21 -07:00
2026-09-03 01:57:09 +05:30
2026-08-31 03:37:43 -07:00
2026-09-02 20:16:14 +05:30
2026-08-31 10:08:13 -07:00
2026-08-24 15:45:52 +05:30
2026-09-01 07:00:54 -07:00
2026-06-27 21:30:37 -07:00
2026-08-31 13:11:41 -07:00
2026-08-29 18:10:47 -07:00
2026-08-13 02:38:28 -07:00
2026-06-30 17:29:23 -07:00
2026-07-07 04:09:35 -07:00
2026-08-13 02:38:28 -07:00
2026-09-02 06:17:25 -07:00
2026-09-01 10:56:49 -07:00
2026-09-02 06:19:03 -07:00
2026-07-26 23:41:54 -07:00
2026-07-31 22:35:26 -07:00
2026-07-26 18:10:34 -07:00
2026-08-20 02:06:05 -07:00
2026-08-21 14:13:28 +10:00
2026-09-01 11:43:36 -07:00
2026-09-02 06:36:16 -07:00
2026-08-26 16:45:22 -07:00
2026-09-02 10:33:43 -07:00
2026-09-01 22:09:24 -05:00
2026-08-18 16:08:29 -07:00
2026-09-01 08:30:45 -07:00
2026-08-26 11:41:04 -07:00
2026-07-26 17:46:29 -07:00
2026-07-15 07:39:42 -07:00
2026-08-30 19:46:14 -07:00
2026-09-02 20:51:07 +05:30
2026-08-27 17:45:43 -05:00
2026-09-02 05:32:10 -07:00
2026-07-15 07:39:17 -07:00
2026-08-10 12:43:46 -07:00
2026-07-15 07:39:17 -07:00
2026-08-10 12:43:46 -07:00
2026-08-28 22:38:01 -05:00
2026-09-02 05:32:01 -07:00
2026-07-27 21:10:51 -07:00
2026-09-01 22:09:24 -05:00
2026-07-05 13:42:46 -07:00
2026-09-02 05:32:01 -07:00
2026-08-28 09:05:19 +05:30
2026-09-02 06:53:20 -07:00
2026-06-19 07:46:33 -07:00
2026-08-31 12:50:29 -07:00
2026-08-25 04:21:37 -07:00
2026-08-25 04:21:37 -07:00
2026-06-21 19:05:27 -07:00
2026-09-02 06:19:08 -07:00
2026-08-02 22:44:38 +05:30
2026-06-22 19:16:47 -05:00
2026-08-26 15:48:39 -07:00
2026-07-29 11:53:39 -07:00
2026-08-12 21:50:35 -07:00
2026-08-12 21:50:35 -07:00
2026-09-02 06:16:54 -07:00
2026-08-14 01:31:31 -07:00
2026-08-14 01:06:13 -07:00
2026-08-29 20:39:44 +05:30
2026-08-21 14:38:19 -07:00
2026-08-14 01:06:13 -07:00
2026-09-01 18:20:18 -03:00
2026-09-02 20:51:07 +05:30
2026-09-02 09:46:15 -07:00
2026-09-01 16:37:36 -03:00
2026-09-02 10:22:30 -07:00
2026-07-29 10:13:50 -07:00
2026-09-01 10:56:49 -07:00
2026-08-14 21:35:30 -07:00
2026-07-29 10:14:11 -07:00
2026-09-01 12:07:35 -07:00
2026-07-29 17:51:40 -05:00
2026-07-02 05:10:31 -07:00
2026-08-09 10:33:58 -07:00
2026-08-15 00:32:44 -07:00
2026-09-02 06:59:11 -07:00
2026-08-12 20:10:51 -07:00
2026-08-31 08:41:15 -07:00
2026-08-12 18:52:08 -07:00
2026-08-12 19:56:44 -07:00
2026-08-19 19:34:36 -07:00
2026-09-02 07:00:13 -07:00
2026-07-28 22:42:19 -07:00
2026-08-26 17:42:58 -07:00
2026-07-15 07:39:17 -07:00
2026-08-06 05:00:17 +05:30
2026-09-02 06:36:16 -07:00
2026-06-25 16:40:26 -05:00
2026-08-15 00:33:11 -07:00
2026-08-16 06:24:56 -07:00
2026-07-31 21:21:16 -07:00
2026-08-21 00:24:32 -07:00
2026-09-01 16:01:53 -04:00
2026-07-29 11:53:39 -07:00
2026-08-31 10:08:48 -07:00
2026-07-29 10:14:11 -07:00
2026-08-14 13:51:26 -07:00
2026-06-27 15:59:00 -07:00
2026-08-19 08:52:03 -07:00
2026-08-10 17:02:56 -07:00
2026-07-29 17:13:48 +05:30
2026-09-02 09:57:39 -07:00
2026-06-17 01:04:26 +08:00
2026-08-15 01:55:22 -07:00
2026-07-29 11:53:39 -07:00
2026-08-01 10:47:20 -07:00
2026-08-08 12:32:23 -07:00
2026-08-31 12:05:07 -07:00
2026-08-15 02:04:49 -07:00
2026-07-07 12:36:41 -07:00
2026-08-15 02:04:49 -07:00
2026-07-26 19:30:21 -07:00
2026-08-31 14:40:09 -07:00
2026-09-02 00:00:55 -07:00
2026-07-17 04:53:38 -07:00
2026-09-02 00:00:55 -07:00
2026-08-20 02:06:05 -07:00
2026-07-26 08:43:24 -07:00
2026-08-19 19:34:36 -07:00
2026-09-02 08:35:36 +10:00
2026-08-08 15:10:35 +05:30
2026-08-24 20:25:10 -07:00
2026-08-29 19:15:32 -07:00
2026-08-05 11:59:33 +05:30
2026-07-21 21:00:43 -05:00
2026-07-29 09:33:48 -07:00
2026-08-18 02:27:18 -07:00
2026-07-24 16:00:03 -07:00
2026-07-31 23:18:12 -07:00
2026-06-25 16:40:26 -05:00
2026-09-01 10:56:49 -07:00
2026-08-16 01:54:35 -07:00
2026-08-07 17:45:06 +05:30
2026-06-05 03:20:10 -07:00
2026-08-15 18:15:18 -07:00
2026-09-02 06:17:10 -07:00
2026-08-02 16:16:36 -07:00
2026-08-29 19:14:15 -07:00
2026-09-01 21:49:14 -07:00
2026-08-31 10:08:31 -07:00
2026-08-31 10:08:31 -07:00
2026-08-22 13:39:04 -04:00
2026-09-01 07:00:54 -07:00
2026-09-02 13:30:54 -07:00
2026-08-26 11:41:04 -07:00
2026-09-02 00:42:53 -07:00
2026-07-31 22:28:46 -07:00
2026-09-01 07:00:54 -07:00
2026-09-01 07:00:54 -07:00
2026-08-14 16:43:37 -07:00
2026-07-29 19:48:37 -07:00
2026-08-07 10:11:05 -07:00
2026-08-15 01:05:39 -07:00
2026-07-29 16:21:54 -07:00
2026-09-02 10:33:43 -07:00
2026-09-01 21:43:59 -07:00
2026-09-03 01:57:09 +05:30
2026-07-24 11:45:57 -07:00
2026-07-29 10:14:11 -07:00
2026-08-01 14:30:16 -07:00
2026-08-19 23:55:20 -07:00
2026-08-31 07:27:50 -07:00
2026-06-09 23:21:14 -07:00
2026-08-06 05:00:17 +05:30