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,105 @@
# SPDX-License-Identifier: MIT
# Copyright (C) 2022 Max Bachmann
from __future__ import annotations
from collections.abc import Hashable, Sequence
from typing import Callable, TypeVar, overload
from rapidfuzz.distance import Editops, Opcodes
_UnprocessedType1 = TypeVar("_UnprocessedType1")
_UnprocessedType2 = TypeVar("_UnprocessedType2")
@overload
def distance(
s1: Sequence[Hashable],
s2: Sequence[Hashable],
*,
processor: None = None,
score_cutoff: int | None = None,
) -> int: ...
@overload
def distance(
s1: _UnprocessedType1,
s2: _UnprocessedType2,
*,
processor: Callable[[_UnprocessedType1 | _UnprocessedType2], Sequence[Hashable]],
score_cutoff: int | None = None,
) -> int: ...
@overload
def normalized_distance(
s1: Sequence[Hashable],
s2: Sequence[Hashable],
*,
processor: None = None,
score_cutoff: float | None = 0,
) -> float: ...
@overload
def normalized_distance(
s1: _UnprocessedType1,
s2: _UnprocessedType2,
*,
processor: Callable[[_UnprocessedType1 | _UnprocessedType2], Sequence[Hashable]],
score_cutoff: float | None = 0,
) -> float: ...
@overload
def similarity(
s1: Sequence[Hashable],
s2: Sequence[Hashable],
*,
processor: None = None,
score_cutoff: int | None = None,
) -> int: ...
@overload
def similarity(
s1: _UnprocessedType1,
s2: _UnprocessedType2,
*,
processor: Callable[[_UnprocessedType1 | _UnprocessedType2], Sequence[Hashable]],
score_cutoff: int | None = None,
) -> int: ...
@overload
def normalized_similarity(
s1: Sequence[Hashable],
s2: Sequence[Hashable],
*,
processor: None = None,
score_cutoff: float | None = 0,
) -> float: ...
@overload
def normalized_similarity(
s1: _UnprocessedType1,
s2: _UnprocessedType2,
*,
processor: Callable[[_UnprocessedType1 | _UnprocessedType2], Sequence[Hashable]],
score_cutoff: float | None = 0,
) -> float: ...
@overload
def editops(
s1: Sequence[Hashable],
s2: Sequence[Hashable],
*,
processor: None = None,
) -> Editops: ...
@overload
def editops(
s1: _UnprocessedType1,
s2: _UnprocessedType2,
*,
processor: Callable[[_UnprocessedType1 | _UnprocessedType2], Sequence[Hashable]],
) -> Editops: ...
@overload
def opcodes(
s1: Sequence[Hashable],
s2: Sequence[Hashable],
*,
processor: None = None,
) -> Opcodes: ...
@overload
def opcodes(
s1: _UnprocessedType1,
s2: _UnprocessedType2,
*,
processor: Callable[[_UnprocessedType1 | _UnprocessedType2], Sequence[Hashable]],
) -> Opcodes: ...