* fix: sync message_count to state.db for /insights (#163) sync_session_usage() didn't write message_count to state.db, so /insights showed 0 messages for all WebUI sessions even with sync_to_insights enabled. Added message_count parameter to sync_session_usage() and pass len(s.messages) from both the streaming and non-streaming chat paths. Fixes #163 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: use callable pattern for _execute_write in sync_session_usage --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -66,7 +66,8 @@ def sync_session_start(session_id: str, model=None) -> None:
|
||||
|
||||
|
||||
def sync_session_usage(session_id: str, input_tokens: int=0, output_tokens: int=0,
|
||||
estimated_cost=None, model=None, title: str=None) -> None:
|
||||
estimated_cost=None, model=None, title: str=None,
|
||||
message_count: int=None) -> None:
|
||||
"""Update token usage and title for a WebUI session in state.db.
|
||||
Called after each turn completes. Uses absolute=True to set totals
|
||||
(the WebUI Session already accumulates across turns).
|
||||
@@ -92,6 +93,17 @@ def sync_session_usage(session_id: str, input_tokens: int=0, output_tokens: int=
|
||||
db.set_session_title(session_id, title)
|
||||
except Exception:
|
||||
pass
|
||||
# Update message count
|
||||
if message_count is not None:
|
||||
try:
|
||||
def _set_msg_count(conn):
|
||||
conn.execute(
|
||||
"UPDATE sessions SET message_count = ? WHERE id = ?",
|
||||
(message_count, session_id),
|
||||
)
|
||||
db._execute_write(_set_msg_count)
|
||||
except Exception:
|
||||
pass
|
||||
except Exception:
|
||||
pass # never crash the WebUI for sync failures
|
||||
finally:
|
||||
|
||||
Reference in New Issue
Block a user