feat: glass ui pass
This commit is contained in:
@@ -2348,6 +2348,24 @@ class TestCompressionChainProjection:
|
||||
assert tip_row["ended_at"] is None # tip is still live
|
||||
assert tip_row["end_reason"] is None
|
||||
|
||||
def test_list_projection_uses_tip_cwd(self, db):
|
||||
"""Projected lineage rows should carry cwd from the live tip row.
|
||||
|
||||
Without this, compressed conversations can lose workspace grouping
|
||||
even after the continuation session persists its cwd.
|
||||
"""
|
||||
import time as _time
|
||||
|
||||
self._build_compression_chain(db, _time.time() - 3600)
|
||||
db.update_session_cwd("tip1", "/tmp/workspaces/tip")
|
||||
db._conn.commit()
|
||||
|
||||
sessions = db.list_sessions_rich(source="cli", limit=20)
|
||||
tip_row = next(s for s in sessions if s["id"] == "tip1")
|
||||
|
||||
assert tip_row["_lineage_root_id"] == "root1"
|
||||
assert tip_row["cwd"] == "/tmp/workspaces/tip"
|
||||
|
||||
def test_list_without_projection_returns_raw_root(self, db):
|
||||
"""project_compression_tips=False returns the raw parent-NULL root
|
||||
rows — useful for admin/debug UIs.
|
||||
|
||||
Reference in New Issue
Block a user