kshitijk4poor
e4257c171a
refactor: single chokepoint for the pre-import version fast path
...
Architecture fix for the bug class behind the Termux --version NameError
(live on main since eb4040242 ): version-printing kept being reimplemented
as *_fast() copies at the top of hermes_cli/main.py, each duplicating
canonical logic (project-root resolution, container detection, profile
detection). The copies drift silently — eb4040242 edited the canonical
output and referenced the PROJECT_ROOT module constant inside the fast
function, which doesn't exist yet at the fast exit point.
- hermes_cli/_startup_fast.py: THE implementations, stdlib-only. main.py's
*_fast() names become thin delegates (kept for test/back-compat), and
PROJECT_ROOT itself derives from the same helper — the constant and the
fast path can no longer disagree.
- Fast output now includes the .install_method stamp (one cheap file read)
and a 'Run hermes version for update status' pointer, so globalizing the
fast path doesn't silently drop slow-path info.
- Guard tests: (1) import-weight — subprocess-imports _startup_fast and
fails if any heavy module (config/yaml/argparse/cli/run_agent/httpx)
lands in sys.modules; (2) subprocess parity on+off Termux — the test
that would have caught eb4040242 the day it landed; (3) install-method
stamp surfacing.
hermes --version: ~3.8s cold / 0.2-0.4s warm -> 0.01-0.02s everywhere.
2026-08-02 21:13:12 +05:30
..
2026-07-29 11:53:39 -07:00
2026-07-29 11:33:41 -07:00
2026-07-22 16:51:01 -04:00
2026-07-29 17:51:40 -05:00
2026-07-31 22:35:49 -07:00
2026-07-30 16:45:08 -07:00
2026-07-29 21:30:53 -07:00
2026-08-01 16:09:56 -05:00
2026-07-31 22:34:28 -07:00
2026-08-02 21:13:12 +05:30
2026-07-28 17:34:21 -07:00
2026-07-28 12:11:52 -05:00
2026-08-02 14:55:32 +05:30
2026-07-26 21:13:03 -07:00
2026-07-26 17:49:03 -07:00
2026-07-17 11:37:25 +05:30
2026-08-02 13:32:41 +05:30
2026-07-11 12:28:55 +05:30
2026-07-25 21:44:43 -07:00
2026-07-31 21:21:20 -07:00
2026-08-01 15:34:16 -07:00
2026-07-29 23:16:18 -07:00
2026-07-26 17:46:55 -07:00
2026-07-24 16:01:06 -07:00
2026-07-24 11:45:57 -07:00
2026-08-01 15:34:16 -07:00
2026-07-29 11:53:39 -07:00
2026-07-31 22:33:16 -07:00
2026-07-29 08:42:16 -07:00
2026-07-21 05:27:13 -07:00
2026-07-01 23:51:54 +05:30
2026-07-31 22:33:16 -07:00
2026-08-02 12:19:04 +05:30
2026-07-29 16:44:31 -07:00
2026-08-01 16:42:51 -07:00
2026-07-31 13:53:04 -05:00
2026-08-01 10:52:34 -07:00
2026-07-22 21:17:21 -07:00
2026-08-01 14:29:04 -07:00
2026-07-19 03:02:21 -07:00
2026-07-28 11:52:47 -07:00
2026-07-25 19:27:17 -07:00
2026-07-26 21:22:40 -07:00
2026-07-29 10:59:54 -07:00
2026-07-05 13:42:46 -07:00
2026-08-01 21:17:51 -04:00
2026-06-30 17:29:23 -07:00
2026-07-07 04:09:35 -07:00
2026-07-31 17:26:42 +05:30
2026-07-29 19:48:37 -07:00
2026-08-02 00:11:50 -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-07-29 11:53:39 -07:00
2026-07-26 17:50:54 -07:00
2026-08-01 23:06:47 -05:00
2026-07-20 05:38:25 -07:00
2026-07-27 21:10:51 -07:00
2026-07-26 17:46:29 -07:00
2026-07-15 07:39:42 -07:00
2026-07-28 03:52:33 -05:00
2026-07-01 16:25:48 -05:00
2026-08-01 16:09:56 -05:00
2026-07-15 07:39:17 -07:00
2026-07-09 16:13:59 -05:00
2026-07-15 07:39:17 -07:00
2026-07-29 11:53:39 -07:00
2026-07-27 21:10:51 -07:00
2026-07-05 13:42:46 -07:00
2026-08-02 21:13:12 +05:30
2026-08-01 23:06:47 -05:00
2026-07-28 17:34:21 -07:00
2026-07-28 00:53:16 -05:00
2026-08-01 12:27:31 +05:30
2026-07-28 22:40:33 -07:00
2026-07-29 11:53:39 -07:00
2026-07-23 18:11:57 -07:00
2026-07-23 21:07:18 -07:00
2026-08-01 14:52:18 -07:00
2026-07-29 19:48:37 -07:00
2026-07-26 21:22:40 -07:00
2026-07-31 17:26:42 +05:30
2026-07-31 22:39:34 -07:00
2026-08-01 14:52:18 -07:00
2026-07-29 10:13:50 -07:00
2026-07-29 11:53:39 -07:00
2026-08-01 21:27:26 -05:00
2026-07-29 10:14:11 -07:00
2026-08-01 12:27:31 +05:30
2026-07-29 17:51:40 -05:00
2026-07-02 05:10:31 -07:00
2026-07-28 17:34:21 -07:00
2026-07-27 21:10:51 -07:00
2026-07-28 22:42:19 -07:00
2026-07-15 07:39:17 -07:00
2026-07-31 22:39:34 -07:00
2026-07-29 10:53:29 -07:00
2026-07-21 10:09:31 -04:00
2026-07-26 18:06:21 -07:00
2026-07-31 21:21:16 -07:00
2026-07-31 21:31:56 -07:00
2026-07-29 11:53:39 -07:00
2026-07-30 03:39:26 -05:00
2026-07-29 10:14:11 -07:00
2026-07-07 15:15:37 -07:00
2026-07-29 17:13:48 +05:30
2026-07-31 22:36:15 -07:00
2026-07-29 10:14:11 -07:00
2026-07-29 11:53:39 -07:00
2026-08-01 10:47:20 -07:00
2026-07-29 10:53:29 -07:00
2026-07-27 19:19:01 +05:30
2026-07-29 11:53:39 -07:00
2026-07-07 12:36:41 -07:00
2026-07-07 13:29:58 -07:00
2026-07-26 19:30:21 -07:00
2026-07-31 22:36:55 -07:00
2026-07-17 04:53:38 -07:00
2026-07-26 23:34:29 -07:00
2026-07-29 10:59:54 -07:00
2026-07-26 08:43:24 -07:00
2026-08-01 21:17:51 -04:00
2026-07-09 19:57:54 -07:00
2026-08-02 13:31:16 +05:30
2026-07-21 21:00:43 -05:00
2026-07-21 21:00:43 -05:00
2026-07-29 09:33:48 -07:00
2026-07-29 12:11:24 -07:00
2026-07-24 16:00:03 -07:00
2026-07-31 23:18:12 -07:00
2026-07-29 19:48:37 -07:00
2026-07-05 13:42:46 -07:00
2026-07-26 12:54:45 -07:00
2026-08-02 00:11:50 -07:00
2026-07-29 11:53:39 -07:00
2026-07-31 22:39:11 -07:00
2026-08-01 14:52:45 -07:00
2026-07-31 22:28:46 -07:00
2026-07-11 12:28:55 +05:30
2026-07-29 19:48:37 -07:00
2026-07-29 08:24:00 -07:00
2026-07-29 16:21:54 -07:00
2026-07-28 17:34:21 -07:00
2026-07-29 18:43:50 -05:00
2026-07-31 03:35:08 -03:00
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-07-05 23:00:34 +05:30