import sqlite3, json, os, base64
WS_STORAGE = r"C:\Users\adamm\AppData\Roaming\Code\User\workspaceStorage"
BROKEN_HASH = "5ec71800c69c79b96b06a37e38537907"
WORKING_HASH = "82cdabb21413f2ff42168423e82c8bdf"
def get_db_value(ws_hash, key):
db_path = os.path.join(WS_STORAGE, ws_hash, "state.vscdb")
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
cursor.execute("SELECT value FROM ItemTable WHERE key = ?", (key,))
row = cursor.fetchone()
conn.close()
return row[0] if row else None
for ws_hash, label in [(BROKEN_HASH, "BROKEN"), (WORKING_HASH, "WORKING")]:
print(f"\n=== {label} ===")
raw = get_db_value(ws_hash, "chat.ChatSessionStore.index")
if raw:
data = json.loads(raw)
print(f"\nchat.ChatSessionStore.index: type={type(data).__name__}, len={len(data)}")
if isinstance(data, list):
for i, entry in enumerate(data[:5]):
print(f" [{i}] type={type(entry).__name__}: {json.dumps(entry)[:200]}")
elif isinstance(data, dict):
for k in list(data.keys())[:5]:
v = data[k]
print(f" {k}: type={type(v).__name__}, value={json.dumps(v)[:200]}")
raw = get_db_value(ws_hash, "agentSessions.model.cache")
if raw:
data = json.loads(raw)
print(f"\nagentSessions.model.cache: type={type(data).__name__}, len={len(data)}")
if isinstance(data, list):
for i, entry in enumerate(data[:3]):
if isinstance(entry, dict):
resource = entry.get("resource", "?")
label_val = entry.get("label", "?")
decoded = ""
if "vscode-chat-session://" in str(resource):
b64part = str(resource).split("/")[-1]
try:
decoded = f" -> {base64.b64decode(b64part).decode()}"
except:
pass
print(f" [{i}] resource={resource}{decoded}")
print(f" label={label_val}")
else:
print(f" [{i}] type={type(entry).__name__}: {json.dumps(entry)[:200]}")
sessions_dir = os.path.join(WS_STORAGE, ws_hash, "chatSessions")
if os.path.isdir(sessions_dir):
files = [f for f in os.listdir(sessions_dir) if f.endswith('.jsonl')]
print(f"\nchatSessions/ files: {len(files)}")
for f in sorted(files):
sid = f.replace('.jsonl', '')
size = os.path.getsize(os.path.join(sessions_dir, f))
print(f" {sid}: {size}b")