Inject context

This commit is contained in:
2026-04-27 16:19:02 +02:00
parent 3ff5bf4d25
commit 40c447695d
2 changed files with 155 additions and 5 deletions

View File

@@ -195,6 +195,69 @@ def add_task(title, client_name="", project_name="", details="", due_at=""):
return row_to_dict(db.execute("SELECT * FROM tasks WHERE id = ?", (cursor.lastrowid,)).fetchone())
def list_clients(limit=100):
with connect() as db:
rows = db.execute(
"SELECT * FROM clients ORDER BY name COLLATE NOCASE LIMIT ?",
(limit,),
).fetchall()
return [row_to_dict(row) for row in rows]
def get_memory_snapshot(limit=25):
with connect() as db:
clients = db.execute(
"""
SELECT c.*,
COUNT(t.id) AS open_task_count
FROM clients c
LEFT JOIN tasks t ON t.client_id = c.id AND t.done = 0
GROUP BY c.id
ORDER BY c.name COLLATE NOCASE
LIMIT ?
""",
(limit,),
).fetchall()
tasks = db.execute(
"""
SELECT t.*, c.name AS client_name, p.name AS project_name
FROM tasks t
LEFT JOIN clients c ON c.id = t.client_id
LEFT JOIN projects p ON p.id = t.project_id
WHERE t.done = 0
ORDER BY t.created_at DESC
LIMIT ?
""",
(limit,),
).fetchall()
projects = db.execute(
"""
SELECT p.*, c.name AS client_name
FROM projects p
LEFT JOIN clients c ON c.id = p.client_id
ORDER BY p.updated_at DESC
LIMIT ?
""",
(limit,),
).fetchall()
repos = db.execute(
"""
SELECT r.*, p.name AS project_name
FROM repositories r
LEFT JOIN projects p ON p.id = r.project_id
ORDER BY r.updated_at DESC
LIMIT ?
""",
(limit,),
).fetchall()
return {
"clients": [row_to_dict(row) for row in clients],
"tasks": [row_to_dict(row) for row in tasks],
"projects": [row_to_dict(row) for row in projects],
"repositories": [row_to_dict(row) for row in repos],
}
def close_task(task_id):
with connect() as db:
row = db.execute(