Fix project isolation: Make loadChatHistory respect active project sessions

- Modified loadChatHistory() to check for active project before fetching all sessions
- When active project exists, use project.sessions instead of fetching from API
- Added detailed console logging to debug session filtering
- This prevents ALL sessions from appearing in every project's sidebar

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
uroma
2026-01-22 14:43:05 +00:00
Unverified
parent b82837aa5f
commit 55aafbae9a
6463 changed files with 1115462 additions and 4486 deletions

View File

@@ -0,0 +1,85 @@
# SPDX-License-Identifier: MIT
# Copyright (C) 2022 Max Bachmann
from __future__ import annotations
import sys
from math import isnan
from typing import Any, Callable
pandas_NA = None
def setupPandas():
global pandas_NA # noqa: PLW0603
if pandas_NA is None:
pandas = sys.modules.get("pandas")
if hasattr(pandas, "NA"):
pandas_NA = pandas.NA
setupPandas()
class ScorerFlag:
RESULT_F64 = 1 << 5
RESULT_I64 = 1 << 6
RESULT_SIZE_T = 1 << 7
SYMMETRIC = 1 << 11
def _get_scorer_flags_distance(**_kwargs: Any) -> dict[str, Any]:
return {
"optimal_score": 0,
"worst_score": 2**63 - 1,
"flags": ScorerFlag.RESULT_SIZE_T | ScorerFlag.SYMMETRIC,
}
def _get_scorer_flags_similarity(**_kwargs: Any) -> dict[str, Any]:
return {
"optimal_score": 2**63 - 1,
"worst_score": 0,
"flags": ScorerFlag.RESULT_SIZE_T | ScorerFlag.SYMMETRIC,
}
def _get_scorer_flags_normalized_distance(**_kwargs: Any) -> dict[str, Any]:
return {
"optimal_score": 0,
"worst_score": 1,
"flags": ScorerFlag.RESULT_F64 | ScorerFlag.SYMMETRIC,
}
def _get_scorer_flags_normalized_similarity(**_kwargs: Any) -> dict[str, Any]:
return {
"optimal_score": 1,
"worst_score": 0,
"flags": ScorerFlag.RESULT_F64 | ScorerFlag.SYMMETRIC,
}
def is_none(s: Any) -> bool:
if s is None or s is pandas_NA:
return True
return isinstance(s, float) and isnan(s)
def add_scorer_attrs(func: Any, cached_scorer_call: dict[str, Callable[..., dict[str, Any]]]):
func._RF_ScorerPy = cached_scorer_call
# used to detect the function hasn't been wrapped afterwards
func._RF_OriginalScorer = func
default_distance_attribute: dict[str, Callable[..., dict[str, Any]]] = {"get_scorer_flags": _get_scorer_flags_distance}
default_similarity_attribute: dict[str, Callable[..., dict[str, Any]]] = {
"get_scorer_flags": _get_scorer_flags_similarity
}
default_normalized_distance_attribute: dict[str, Callable[..., dict[str, Any]]] = {
"get_scorer_flags": _get_scorer_flags_normalized_distance
}
default_normalized_similarity_attribute: dict[str, Callable[..., dict[str, Any]]] = {
"get_scorer_flags": _get_scorer_flags_normalized_similarity
}