teknium1
07e97d2f5d
fix(tests): gate WAL-dependent tests on the linked SQLite's real capability
...
Two tests fail deterministically on main depending only on which SQLite the
test interpreter links — nothing about the code under test. Both are green in
isolation and red in the suite / on an older library, the worst diagnostic
shape.
Root cause A — WAL is not always WAL. Hermes refuses journal_mode=WAL on
SQLite builds carrying the upstream WAL-reset corruption bug (3.7.0–3.51.2,
excluding backports 3.50.7 / 3.44.6) and falls back to DELETE. On such a
build NO -wal sidecar is ever created, so
test_wal_checkpoint_truncates_wal_file asserts on a file that cannot exist.
Invisible locally when the repo .venv and the Hermes managed runtime link
different versions (observed: .venv 3.50.4 → DELETE, runtime 3.53.1 → WAL),
so the same test passes for one interpreter and fails for the other.
- tests/conftest.py: add a `requires_wal` marker plus a
pytest_collection_modifyitems hook that skips such tests when the linked
library will fall back to DELETE. The skip reason names the actual
version so it is diagnosable rather than mysterious.
- pyproject.toml: register the marker.
- test_kanban_db_repair.py: mark the -wal-sidecar test.
Root cause B — process-global warn-once dedup. The WAL-fallback warning is
emitted at most once per (process, db_label). Any earlier test in
test_kanban_db.py that opens a kanban.db consumes that one-shot, so
test_connect_falls_back_to_delete_on_locking_protocol sees zero warnings and
fails — but only as part of the file, never alone.
- test_kanban_db.py: clear both dedup sets in the test that asserts on the
warning, with a comment explaining the isolation trap.
The gate deliberately does NOT import hermes_state. That module computes
DEFAULT_DB_PATH from get_hermes_home() at import time, so importing it during
collection — before the per-test _isolate_hermes_home fixture redirects
HERMES_HOME — permanently caches the developer's REAL ~/.hermes/state.db for
the whole session. The first version of this change did exactly that and made
tests read a live 31,881-session production database (test_console_engine
asserted "Total sessions: 2" and got 31881). The version predicate is
duplicated instead, and tests/test_conftest_wal_gate.py pins the two
implementations in agreement across every documented upstream boundary plus
guards against the import coming back.
Verified: on SQLite 3.50.4 the sidecar test SKIPS naming the version; on
3.53.1 it RUNS and passes, so coverage is not lost where WAL works. Clean
main fails exactly these 2 tests under
`scripts/run_tests.sh tests/hermes_cli/ tests/test_hermes_state.py`
(9926 passed, 2 failed); with this change the same scope is green.
Tests: 726 passed across the two kanban files, test_hermes_state.py, and the
new gate tests.
2026-07-25 07:17:52 -07:00
..
2026-05-27 02:12:27 -07:00
2026-06-08 22:54:25 -07:00
2026-07-22 21:18:50 -07:00
2026-06-28 05:49:21 -07:00
2026-05-28 22:26:25 -07:00
2026-05-25 01:20:33 -07:00
2026-07-01 02:18:56 -07:00
2026-07-20 02:25:44 -07:00
2026-07-17 20:55:24 +00:00
2026-07-22 11:19:37 +05:30
2026-06-15 05:36:20 +00:00
2026-05-27 00:43:32 -07:00
2026-07-11 03:51:43 -07:00
2026-06-01 09:57:10 -07:00
2026-06-23 23:28:21 -07:00
2026-06-17 05:48:35 -07:00
2026-07-22 10:58:22 -07:00
2026-06-13 05:15:26 -07:00
2026-07-17 11:37:25 +05:30
2026-07-02 13:17:41 -07:00
2026-07-10 17:50:43 +05:30
2026-07-23 09:22:02 -07:00
2026-07-23 11:21:13 -07:00
2026-05-28 22:26:25 -07:00
2026-05-24 04:25:32 -07:00
2026-07-02 13:17:41 -07:00
2026-07-17 19:16:48 -04:00
2026-07-16 22:24:45 -07:00
2026-07-11 12:28:55 +05:30
2026-05-28 22:26:25 -07:00
2026-07-24 23:06:05 -07:00
2026-05-28 15:14:05 +10:00
2026-07-06 11:17:41 -07:00
2026-05-28 22:26:25 -07:00
2026-06-27 11:45:07 -07:00
2026-05-28 22:26:25 -07:00
2026-07-15 09:59:38 -07:00
2026-07-22 08:11:09 +05:30
2026-06-19 01:53:32 +05:30
2026-06-19 01:53:32 +05:30
2026-07-22 03:20:09 -07:00
2026-07-18 02:49:28 -07:00
2026-05-28 15:14:05 +10:00
2026-05-28 22:26:25 -07:00
2026-07-24 15:53:38 -07:00
2026-07-24 16:01:06 -07:00
2026-06-27 15:59:00 -07:00
2026-05-28 22:26:25 -07:00
2026-06-08 15:12:12 -07:00
2026-07-23 17:57:33 +05:30
2026-07-18 14:01:56 -07:00
2026-05-25 01:20:33 -07:00
2026-07-22 16:51:01 -04:00
2026-07-24 16:00:03 -07:00
2026-05-28 22:26:25 -07:00
2026-07-10 00:47:51 +05:30
2026-07-21 05:27:13 -07:00
2026-05-28 22:26:25 -07:00
2026-07-01 23:51:54 +05:30
2026-07-24 09:49:00 -07:00
2026-05-13 09:34:15 -07:00
2026-07-09 18:23:18 -07:00
2026-07-22 04:39:57 -07:00
2026-07-20 02:25:33 -07:00
2026-07-24 16:02:08 -07:00
2026-07-12 03:05:12 -07:00
2026-07-22 16:51:01 -04:00
2026-07-16 14:30:05 +10:00
2026-07-22 21:17:21 -07:00
2026-07-05 00:44:15 -07:00
2026-05-29 23:45:05 -07:00
2026-07-23 08:26:57 -07:00
2026-07-23 08:26:57 -07:00
2026-06-30 03:27:41 -07:00
2026-07-19 03:02:21 -07:00
2026-07-09 14:30:16 +05:30
2026-06-23 23:39:22 -07:00
2026-07-17 04:58:35 -07:00
2026-07-06 02:21:32 -07:00
2026-06-21 22:43:55 -07:00
2026-05-28 22:26:25 -07:00
2026-05-09 18:43:40 -07:00
2026-07-06 12:26:21 -07:00
2026-06-07 18:21:03 -07:00
2026-06-07 18:21:03 -07:00
2026-06-01 16:58:58 -07:00
2026-06-01 16:58:58 -07:00
2026-07-22 11:19:37 +05:30
2026-07-22 11:19:37 +05:30
2026-06-13 05:51:05 -07:00
2026-07-05 00:55:51 -07:00
2026-07-22 11:19:37 +05:30
2026-07-19 03:48:48 -07:00
2026-07-14 07:02:05 -07:00
2026-05-27 02:12:27 -07:00
2026-07-14 07:02:05 -07:00
2026-06-26 19:15:18 -07:00
2026-07-24 19:43:44 -05:00
2026-07-22 06:50:50 -07:00
2026-07-09 12:21:16 +05:30
2026-05-27 02:12:27 -07:00
2026-07-06 03:18:02 -07:00
2026-05-27 02:12:27 -07:00
2026-07-24 19:43:44 -05:00
2026-05-27 02:12:27 -07:00
2026-07-03 20:18:00 +05:30
2026-06-02 23:43:27 -07:00
2026-07-16 19:49:39 -04:00
2026-06-04 03:03:35 -07:00
2026-07-09 12:21:16 +05:30
2026-05-12 13:59:22 -04:00
2026-06-09 13:56:33 +10:00
2026-06-27 10:08:13 +10:00
2026-06-06 12:43:28 -05:00
2026-06-15 15:33:15 +10:00
2026-07-23 00:31:23 -05:00
2026-07-01 00:38:17 -07:00
2026-07-09 16:13:59 -05:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-07-24 22:56:42 -07:00
2026-07-21 10:09:31 -04:00
2026-07-01 02:18:56 -07:00
2026-06-30 17:29:23 -07:00
2026-05-28 22:26:25 -07:00
2026-05-09 13:36:33 -07:00
2026-07-24 17:10:39 -07:00
2026-07-02 19:52:18 -05:00
2026-06-17 16:53:42 -07:00
2026-06-15 12:31:23 -07:00
2026-07-23 07:33:16 -07:00
2026-07-17 15:01:54 -04:00
2026-06-01 13:27:30 +10:00
2026-06-10 02:21:00 -07:00
2026-06-28 22:53:56 -07:00
2026-07-19 03:02:21 -07:00
2026-06-28 18:53:00 -07:00
2026-05-13 18:40:14 -07:00
2026-07-24 16:02:08 -07:00
2026-07-24 16:02:08 -07:00
2026-05-28 22:26:25 -07:00
2026-07-16 07:19:36 -07:00
2026-07-11 05:43:35 -07:00
2026-07-16 05:08:56 -07:00
2026-06-11 06:10:08 -07:00
2026-05-28 22:26:25 -07:00
2026-06-23 23:29:28 -07:00
2026-07-01 02:48:36 -07:00
2026-07-22 09:53:51 +05:30
2026-07-21 12:39:59 -07:00
2026-06-02 11:59:27 +10:00
2026-05-28 22:26:25 -07:00
2026-07-24 15:49:29 -07:00
2026-07-23 11:13:14 -07:00
2026-06-06 19:53:58 -07:00
2026-07-22 09:53:51 +05:30
2026-06-13 13:47:08 -07:00
2026-06-28 18:05:28 -05:00
2026-07-20 05:38:25 -07:00
2026-07-10 00:47:51 +05:30
2026-05-29 01:23:06 -07:00
2026-07-16 20:45:05 -04:00
2026-06-06 18:22:38 -07:00
2026-05-28 22:26:25 -07:00
2026-07-09 20:03:11 -07:00
2026-05-28 00:19:31 -07:00
2026-07-15 07:39:42 -07:00
2026-07-05 05:35:44 -07:00
2026-07-22 16:47:06 -04:00
2026-07-19 19:33:49 -04:00
2026-07-18 02:31:20 -07:00
2026-07-01 16:25:48 -05:00
2026-06-25 21:46:58 -07:00
2026-05-30 01:40:57 -07:00
2026-05-18 20:17:10 -07:00
2026-05-28 21:00:46 -07:00
2026-07-15 07:39:17 -07:00
2026-07-16 07:33:14 -07:00
2026-05-30 01:40:49 -07:00
2026-07-25 07:17:52 -07:00
2026-07-25 07:17:52 -07:00
2026-06-01 20:26:57 -07:00
2026-07-15 07:39:17 -07:00
2026-05-28 19:02:55 -07:00
2026-07-09 16:13:59 -05:00
2026-06-21 12:06:24 -07:00
2026-07-20 05:38:25 -07:00
2026-06-21 12:43:41 -07:00
2026-06-21 12:38:14 -07:00
2026-06-25 21:46:58 -07:00
2026-05-28 19:02:55 -07:00
2026-06-25 16:40:26 -05:00
2026-05-23 23:10:36 -07:00
2026-06-21 12:49:07 -07:00
2026-07-15 07:39:17 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 17:50:42 -07:00
2026-07-11 03:51:43 -07:00
2026-06-21 12:43:37 -07:00
2026-07-23 09:27:13 -07:00
2026-06-28 02:44:04 -07:00
2026-07-20 10:17:57 -07:00
2026-07-23 07:33:16 -07:00
2026-07-20 10:17:57 -07:00
2026-06-20 10:26:45 -07:00
2026-07-12 03:08:08 -07:00
2026-07-22 16:51:01 -04:00
2026-06-19 07:46:33 -07:00
2026-06-19 07:46:33 -07:00
2026-06-19 07:46:33 -07:00
2026-06-19 07:46:33 -07:00
2026-06-19 07:46:33 -07:00
2026-06-19 07:46:33 -07:00
2026-06-19 07:46:33 -07:00
2026-06-19 07:46:33 -07:00
2026-06-19 07:46:33 -07:00
2026-07-24 16:00:03 -07:00
2026-07-05 19:10:00 -07:00
2026-07-15 04:56:25 -07:00
2026-07-17 04:50:47 -07:00
2026-07-17 04:50:47 -07:00
2026-05-28 22:26:25 -07:00
2026-06-21 19:05:27 -07:00
2026-07-21 12:43:27 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-07-07 04:09:35 -07:00
2026-07-24 13:00:53 +05:30
2026-07-23 17:50:20 +05:30
2026-07-05 23:00:34 +05:30
2026-07-23 21:07:18 -07:00
2026-07-23 16:55:41 -07:00
2026-07-15 00:10:31 -07:00
2026-06-10 00:24:06 -07:00
2026-06-13 13:47:08 -07:00
2026-07-20 03:06:02 -07:00
2026-07-22 21:17:21 -07:00
2026-07-03 03:33:06 -07:00
2026-06-23 02:03:21 +05:30
2026-07-22 11:19:37 +05:30
2026-07-24 21:24:36 -05:00
2026-07-12 03:04:07 -07:00
2026-07-18 14:01:56 -07:00
2026-07-17 15:47:08 -07:00
2026-07-20 02:22:22 -07:00
2026-07-14 03:11:19 -07:00
2026-07-20 08:47:55 -07:00
2026-07-20 02:25:44 -07:00
2026-05-28 22:26:25 -07:00
2026-06-12 08:51:10 +00:00
2026-06-21 22:43:48 -07:00
2026-06-15 23:24:55 -05:00
2026-07-18 07:05:58 -07:00
2026-07-01 05:06:00 -07:00
2026-07-02 06:52:46 +00:00
2026-07-07 00:53:56 -07:00
2026-06-11 07:51:01 -07:00
2026-06-05 06:43:51 -07:00
2026-05-29 23:45:05 -07:00
2026-07-06 11:10:51 -07:00
2026-05-09 23:17:25 -07:00
2026-06-02 06:31:37 -07:00
2026-05-17 02:29:41 -07:00
2026-06-27 21:23:25 -07:00
2026-05-28 22:26:25 -07:00
2026-06-17 12:33:56 +05:30
2026-06-20 14:18:33 -05:00
2026-06-05 06:55:09 -07:00
2026-07-22 16:51:01 -04:00
2026-07-20 05:38:59 -07:00
2026-05-23 17:49:47 -07:00
2026-05-28 22:26:25 -07:00
2026-07-01 04:05:15 -07:00
2026-05-28 22:26:25 -07:00
2026-06-07 08:02:55 +00:00
2026-07-06 04:38:17 -07:00
2026-07-06 11:20:47 -07:00
2026-06-13 13:23:59 -07:00
2026-05-25 01:41:19 -07:00
2026-05-24 18:04:54 -07:00
2026-07-07 15:14:30 -07:00
2026-07-15 07:39:17 -07:00
2026-06-07 21:50:57 -07:00
2026-05-28 22:26:25 -07:00
2026-07-24 17:10:39 -07:00
2026-06-15 11:43:23 +10:00
2026-07-05 00:48:50 -07:00
2026-06-24 07:46:54 -07:00
2026-06-25 16:40:26 -05:00
2026-07-21 10:09:31 -04:00
2026-05-25 01:20:33 -07:00
2026-06-21 20:21:33 -07:00
2026-07-05 19:13:20 -07:00
2026-06-21 19:53:27 -07:00
2026-07-05 11:44:53 +05:30
2026-05-31 15:02:26 -07:00
2026-06-27 21:23:25 -07:00
2026-06-25 13:52:06 -07:00
2026-06-27 19:49:02 -07:00
2026-07-20 00:41:21 -07:00
2026-05-29 02:24:48 -07:00
2026-06-27 15:59:00 -07:00
2026-06-08 07:03:12 -07:00
2026-07-07 00:53:48 -07:00
2026-05-31 03:19:37 -07:00
2026-07-20 02:22:22 -07:00
2026-05-28 22:26:25 -07:00
2026-07-18 14:30:24 +05:30
2026-06-08 10:01:47 -07:00
2026-05-28 03:34:47 -07:00
2026-07-23 17:57:33 +05:30
2026-07-07 02:32:32 -07:00
2026-07-22 16:47:06 -04:00
2026-06-17 01:04:26 +08:00
2026-06-06 18:36:40 -07:00
2026-07-21 06:41:04 -07:00
2026-05-12 01:02:25 -07:00
2026-06-21 19:05:27 -07:00
2026-05-28 22:26:25 -07:00
2026-06-12 11:48:06 -07:00
2026-06-30 17:58:52 -05:00
2026-06-29 21:33:00 +10:00
2026-05-28 22:26:25 -07:00
2026-07-09 19:54:02 -07:00
2026-07-09 16:46:07 -07:00
2026-07-07 12:36:41 -07:00
2026-07-09 19:54:02 -07:00
2026-07-05 22:04:52 -07:00
2026-05-10 13:06:25 -07:00
2026-07-03 13:44:00 -07:00
2026-07-17 04:53:38 -07:00
2026-07-05 23:01:10 -07:00
2026-07-25 09:30:44 +05:30
2026-07-24 22:41:30 -07:00
2026-07-22 13:29:56 -05:00
2026-07-05 14:51:49 -07:00
2026-05-15 10:36:38 +05:30
2026-07-09 20:03:11 -07:00
2026-05-28 22:26:25 -07:00
2026-07-22 16:47:06 -04:00
2026-06-05 04:06:17 -07:00
2026-05-28 22:26:25 -07:00
2026-06-08 09:42:44 -07:00
2026-05-19 01:28:32 -07:00
2026-05-25 01:20:33 -07:00
2026-05-31 09:13:06 -07:00
2026-06-24 17:56:30 +05:30
2026-07-05 13:42:46 -07:00
2026-07-09 19:57:54 -07:00
2026-06-10 01:02:40 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-07-21 21:00:43 -05:00
2026-07-21 16:36:57 -05:00
2026-07-21 16:36:57 -05:00
2026-07-23 12:01:24 -07:00
2026-06-20 23:23:47 -07:00
2026-07-24 16:00:03 -07:00
2026-07-16 14:43:14 +02:00
2026-07-17 18:23:22 +02:00
2026-07-24 21:39:32 -07:00
2026-06-10 21:39:22 -04:00
2026-07-02 04:59:02 -07:00
2026-06-30 04:38:43 -07:00
2026-07-22 16:51:01 -04:00
2026-06-07 22:56:23 -07:00
2026-07-16 05:08:56 -07:00
2026-05-28 22:26:25 -07:00
2026-07-22 08:11:09 +05:30
2026-05-28 22:26:25 -07:00
2026-06-11 19:06:29 -04:00
2026-07-16 01:19:29 -07:00
2026-07-18 20:01:55 +05:30
2026-06-14 03:08:52 -07:00
2026-07-08 07:09:08 -07:00
2026-06-10 00:24:06 -07:00
2026-05-25 01:47:55 -07:00
2026-06-21 22:44:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-07-23 00:44:27 -05:00
2026-07-16 01:17:11 -07:00
2026-06-26 14:07:43 +05:30
2026-05-24 18:04:54 -07:00
2026-05-28 22:26:25 -07:00
2026-06-03 16:40:28 -07:00
2026-05-27 22:03:45 -05:00
2026-07-22 16:51:01 -04:00
2026-07-20 09:21:08 -07:00
2026-07-07 05:12:24 -07:00
2026-06-04 02:31:49 -07:00
2026-07-24 16:00:03 -07:00
2026-07-22 16:51:01 -04:00
2026-06-22 06:02:31 -07:00
2026-06-19 19:58:26 -07:00
2026-07-22 10:35:50 +05:30
2026-06-27 11:43:01 -07:00
2026-07-23 07:33:16 -07:00
2026-06-18 12:42:58 +05:30
2026-07-05 19:35:30 -07:00
2026-07-22 09:01:19 -04:00
2026-07-03 04:08:37 -07:00
2026-06-21 13:10:22 -07:00
2026-05-28 22:26:25 -07:00
2026-07-15 00:09:24 +05:30
2026-07-11 12:28:55 +05:30
2026-07-19 19:59:46 -04:00
2026-06-28 17:02:05 -05:00
2026-06-06 12:50:58 -05:00
2026-07-23 16:55:41 -07:00
2026-07-23 16:55:41 -07:00
2026-05-15 12:11:32 -07:00
2026-07-09 12:21:16 +05:30
2026-06-21 12:29:18 -07:00
2026-07-17 04:33:34 -07:00
2026-07-19 09:57:21 -07:00
2026-07-22 04:40:07 -07:00
2026-06-11 09:41:35 -07:00
2026-07-08 00:20:13 +00:00
2026-06-28 16:29:52 -05:00
2026-05-24 15:00:44 -07:00
2026-07-16 07:17:55 -07:00
2026-07-07 13:54:07 -07:00
2026-07-24 16:02:39 -07:00
2026-06-08 11:32:43 -07:00
2026-06-28 03:58:18 -07:00
2026-06-04 07:49:34 -07:00
2026-06-11 06:10:27 -07:00
2026-07-03 15:22:43 -05:00
2026-07-23 01:53:37 -05:00
2026-07-24 21:12:59 -05:00
2026-07-21 12:42:07 -07:00
2026-07-16 12:36:51 +05:30
2026-05-23 01:07:01 -04:00
2026-07-07 17:45:51 -07:00
2026-05-28 22:26:25 -07:00
2026-06-08 11:32:43 -07:00
2026-06-07 18:28:23 -07:00
2026-06-17 09:49:46 -07:00
2026-07-02 13:17:41 -07:00
2026-06-15 17:03:35 +05:30
2026-07-02 13:17:41 -07:00
2026-06-15 17:08:19 +05:30
2026-05-24 18:12:16 -07:00
2026-05-28 22:26:25 -07:00
2026-07-22 04:39:17 -07:00
2026-07-09 16:58:37 -07:00