Teknium
|
0c1cb793cc
|
refactor(state): hand-compact messages mixin docstrings; reuse _json_or/_parse_tool_calls/_read_all; drop identity wrappers
|
2026-09-02 23:15:57 -07:00 |
|
Teknium
|
1e1134c476
|
refactor(state): drop test-only latest_user_message_row_id wrapper, collapse defensive layers in messages mixin
|
2026-09-02 22:59:35 -07:00 |
|
Teknium
|
36b7fe14ee
|
refactor(state): hand-compact remaining long docstrings (all invariants kept)
|
2026-09-02 20:12:31 -07:00 |
|
Teknium
|
76f5a58cfc
|
refactor(state): pack one remaining signature
|
2026-09-02 20:09:45 -07:00 |
|
Teknium
|
a4edb9f228
|
refactor(state): local _scrub_surrogates in messages mixin instead of four lazy imports
|
2026-09-02 20:07:48 -07:00 |
|
Teknium
|
9fe1267a88
|
refactor(state): tighten messages mixin helpers (reaction check, replay-dup loop, one-line probes)
|
2026-09-02 19:49:28 -07:00 |
|
Teknium
|
f731c63e89
|
refactor(state): drop blank separators around nested _do txn closures
|
2026-09-02 19:47:36 -07:00 |
|
Teknium
|
3c615c48e9
|
refactor(state): AST-neutral bracket/string-literal layout pass on the six mixin modules
|
2026-09-02 19:45:18 -07:00 |
|
Teknium
|
4de8710b74
|
refactor(state): unify _placeholders/_ended_by_compression/row-probe SQL into hermes_state_common
|
2026-09-02 19:43:49 -07:00 |
|
Teknium
|
7d48a84acf
|
refactor(state): reflow prose docstrings to the 108-col budget (word-preserving)
|
2026-09-02 19:39:50 -07:00 |
|
Teknium
|
e0545fb06d
|
refactor(state): compact hermes_state_messages mixin (1425->1254 LOC, zero behavior change)
- shared SQL constants for repeated literals (display-meta row/update, active ids,
counter set/reset, archive-active, bump-generation)
- _bump_session_counters helper replaces the duplicated UPDATE-counters branches in
append_message/append_messages_batch (byte-identical SQL for both shapes)
- archive_and_compact tail/counter statements composed from one template each
(byte-identical for every branch), replacing two if/else literal pairs
- collapsed redundant guards: sqlite3.Row hasattr check, cache getter, boundary
int parse, message_count/message_dict helpers, get_messages paging slices
- hand-compacted docstrings (WHY/invariants kept), inlined single-use column tuples
- SQL trace parity + 73-record message-dict parity + import smoke verified
|
2026-09-02 19:30:31 -07:00 |
|
Teknium
|
135973b5b6
|
Merge branch 'simp/r2-state-b' into simp/r2-state
# Conflicts:
# hermes_state_messages.py
|
2026-09-02 17:35:13 -07:00 |
|
Teknium
|
831f2e542c
|
refactor(state): fold small get_messages/reaction/publish shapes; hug trailing closers (AST-identical)
|
2026-09-02 17:20:16 -07:00 |
|
Teknium
|
d77f3ad79b
|
refactor(state): single INSERT shape in _clone_message_rows; fold small closures/conditions
|
2026-09-02 17:12:13 -07:00 |
|
Teknium
|
388fe39f55
|
refactor(state): compact messages docstrings (WHY kept); append_message builds msg from its own kwargs
|
2026-09-02 17:06:57 -07:00 |
|
Teknium
|
8656cc31f2
|
refactor(state): table-driven _rows_to_conversation column copy; unify tool-call counting; collapse defensive locals
|
2026-09-02 16:59:58 -07:00 |
|
Teknium
|
eb8d628c97
|
refactor(hermes_state): restore WHY comments dropped by round-2 sub-branches
Comment/docstring-only (AST-identical): surrogate-scrub rationale, persisted
marker stripping invariant, generation counter upgrade semantics, CJK marker
empty-vs-populated rule, WAL 0-page ordering precondition, repair backup
live-connection case, telegram topic delete precondition, mixed-mode
corruption definition, and similar.
|
2026-09-02 16:48:30 -07:00 |
|
Teknium
|
52d982281c
|
refactor(state): _stale_holder guard helper; join implicit-concat SQL fragments (AST-identical)
|
2026-09-02 16:44:38 -07:00 |
|
Teknium
|
0d7acf67b5
|
refactor(state): pack hanging signatures/tuples in messages/compression/usage (AST-identical)
|
2026-09-02 16:38:21 -07:00 |
|
Teknium
|
5c3acca66b
|
refactor(state): resume — verified messages/compression/titles/usage simplification
|
2026-09-02 16:37:21 -07:00 |
|
Teknium
|
d15c61b5dc
|
refactor(state): split SessionDB into domain mixins and free-function modules; unify SQL boilerplate
hermes_state.py 17,220 -> 6,442 LOC. Behavior-neutral: every moved body is
AST-identical to the original, verified per extraction.
SessionDB core
- _write_sql / _write_rowcount / _read_one / _read_all replace ~120 copies of
the `def _do(conn): conn.execute(...)` + `_execute_write(_do)` and
`with self._read_ctx() as conn: row = conn.execute(...).fetchone()` shapes.
- _set_lineage_column replaces four copies of the recursive compression-lineage
UPDATE (archived / pinned / hidden / last_read_at).
- _read_session_number unifies the three compression counter readers.
- Dead (zero refs repo-wide): restore_rewound, delete_gateway_routing_entries,
_is_duplicate_replayed_user_message, SessionPortabilityMixin.get_first_assistant_text.
New mixins bound onto SessionDB via the MRO (logger name stays "hermes_state"):
hermes_state_messages SessionMessagesMixin 48 methods
hermes_state_compression SessionCompressionMixin 30
hermes_state_gateway SessionGatewayMixin 26
hermes_state_maintenance SessionMaintenanceMixin 13
hermes_state_usage SessionUsageMixin 12
hermes_state_titles SessionTitlesMixin 13
hermes_state_telegram SessionTelegramTopicsMixin 11
Origin-internal symbols resolve through a lazy `from hermes_state import ...`
inside the few methods that need them (no import cycle).
New free-function modules, every name re-imported into hermes_state so
`hermes_state.<name>` (and test monkeypatches on it) keep working; intra-module
calls to patched helpers go through the lazy origin import:
hermes_state_repair repair/backup/preflight (43 defs)
hermes_state_wal journal-mode / PRAGMA policy (33 defs)
hermes_state_dbfile header probes, zeroed-db quarantine, stats, holders (21 defs)
Existing mixins: search — shared FTS MATCH/LIKE builders, unified rebuild
status/step/finish engines, state_meta helpers; schema — one legacy/v23 FTS init
branch, shared _live_pk_columns, Row/tuple dual access dropped; portability —
shared _PREVIEW_RAW_SUBQUERY_SQL and _rich_row; common — single
stat_db_file_identity (was 3 copies), AUTO_VACUUM_MIN_FREELIST_RATIO.
Docstrings/comments hand-compacted (AST-identical) keeping every invariant,
ordering rule, failure mode and WHY. Schema SQL, migration order and PRAGMAs
untouched. test_repair_path_has_no_bare_connects repointed to hermes_state_repair.
|
2026-09-02 13:32:13 -07:00 |
|