Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
a6445b9
implemented the memory feature backend
dehydrated-bear Dec 13, 2025
109b438
package json files
dehydrated-bear Dec 13, 2025
7f7012f
feat: enhance Memories UI with improved titles and event bubbling fix
dehydrated-bear Dec 14, 2025
a362967
style: format code with Black and Prettier
dehydrated-bear Dec 14, 2025
9eba77c
docs: add comprehensive Memories feature documentation
dehydrated-bear Dec 14, 2025
d5ad544
orrect DBSCAN clustering and API configuration issues
dehydrated-bear Dec 14, 2025
1b7ee7b
correct DBSCAN clustering and API configuration issues
dehydrated-bear Dec 14, 2025
536455c
Add the missing /placeholder-image.png asset to frontend/public/
dehydrated-bear Dec 14, 2025
32cabca
Merge branch 'AOSSIE-Org:main' into feat/memories-backend-implementation
dehydrated-bear Jan 26, 2026
c5f1a6a
fix:resolved the iamge viewer error
dehydrated-bear Jan 26, 2026
22659e2
Merge remote-tracking branch 'upstream/main' into feat/memories-backe…
dehydrated-bear Jan 26, 2026
ef58dae
fix:nullable values and migration guard
dehydrated-bear Jan 26, 2026
0b07cc3
Merge remote-tracking branch 'origin/feat/memories-backend-implementa…
dehydrated-bear Jan 26, 2026
719bbc4
minor fixes and linting and formatting
dehydrated-bear Jan 26, 2026
a1815ef
fix: minor tweaks and port update to 52123
dehydrated-bear Jan 26, 2026
b65de08
fix:improved date handling and added timeouts
dehydrated-bear Jan 27, 2026
38d30d8
fix:improved zsuffix handling
dehydrated-bear Jan 27, 2026
b999b80
fix:changed async def to def
dehydrated-bear Jan 27, 2026
665357a
fix:improved encapsulation and changed the date tolerance
dehydrated-bear Jan 27, 2026
ab28916
fix:docs fixfor consitency
dehydrated-bear Jan 27, 2026
8e924b5
fix:type error prevention
dehydrated-bear Jan 27, 2026
6557238
fix:using hashlib to improve memmory_id production
dehydrated-bear Jan 27, 2026
1833d86
Merge remote-tracking branch 'upstream/main' into feat/memories-backe…
dehydrated-bear Feb 3, 2026
99e0eff
fix: remove invalid ignoreDeprecations from tsconfig.json
dehydrated-bear Feb 3, 2026
3bb6895
style: apply black and ruff formatting to backend
dehydrated-bear Feb 3, 2026
d045895
feat: add type field to Memory schema for location/date distinction
dehydrated-bear Feb 3, 2026
82b3b49
Merge branch 'AOSSIE-Org:main' into feat/memories-backend-implementation
dehydrated-bear Feb 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions backend/app/database/albums.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,15 @@ def db_create_albums_table() -> None:
try:
conn = sqlite3.connect(DATABASE_PATH)
cursor = conn.cursor()
cursor.execute(
"""
cursor.execute("""
CREATE TABLE IF NOT EXISTS albums (
album_id TEXT PRIMARY KEY,
album_name TEXT UNIQUE,
description TEXT,
is_hidden BOOLEAN DEFAULT 0,
password_hash TEXT
)
"""
)
""")
conn.commit()
finally:
if conn is not None:
Expand All @@ -31,17 +29,15 @@ def db_create_album_images_table() -> None:
try:
conn = sqlite3.connect(DATABASE_PATH)
cursor = conn.cursor()
cursor.execute(
"""
cursor.execute("""
CREATE TABLE IF NOT EXISTS album_images (
album_id TEXT,
image_id TEXT,
PRIMARY KEY (album_id, image_id),
FOREIGN KEY (album_id) REFERENCES albums(album_id) ON DELETE CASCADE,
FOREIGN KEY (image_id) REFERENCES images(id) ON DELETE CASCADE
)
"""
)
""")
conn.commit()
finally:
if conn is not None:
Expand Down
12 changes: 4 additions & 8 deletions backend/app/database/face_clusters.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,13 @@ def db_create_clusters_table() -> None:
try:
conn = sqlite3.connect(DATABASE_PATH)
cursor = conn.cursor()
cursor.execute(
"""
cursor.execute("""
CREATE TABLE IF NOT EXISTS face_clusters (
cluster_id TEXT PRIMARY KEY,
cluster_name TEXT,
face_image_base64 TEXT
)
"""
)
""")
conn.commit()
finally:
if conn is not None:
Expand Down Expand Up @@ -245,8 +243,7 @@ def db_get_all_clusters_with_face_counts() -> (
cursor = conn.cursor()

try:
cursor.execute(
"""
cursor.execute("""
SELECT
fc.cluster_id,
fc.cluster_name,
Expand All @@ -256,8 +253,7 @@ def db_get_all_clusters_with_face_counts() -> (
LEFT JOIN faces f ON fc.cluster_id = f.cluster_id
GROUP BY fc.cluster_id, fc.cluster_name, fc.face_image_base64
ORDER BY fc.cluster_id
"""
)
""")

rows = cursor.fetchall()

Expand Down
24 changes: 8 additions & 16 deletions backend/app/database/faces.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@ def db_create_faces_table() -> None:
conn = sqlite3.connect(DATABASE_PATH)
conn.execute("PRAGMA foreign_keys = ON")
cursor = conn.cursor()
cursor.execute(
"""
cursor.execute("""
CREATE TABLE IF NOT EXISTS faces (
face_id INTEGER PRIMARY KEY AUTOINCREMENT,
image_id TEXT,
Expand All @@ -44,8 +43,7 @@ def db_create_faces_table() -> None:
FOREIGN KEY (image_id) REFERENCES images(id) ON DELETE CASCADE,
FOREIGN KEY (cluster_id) REFERENCES face_clusters(cluster_id) ON DELETE SET NULL
)
"""
)
""")
conn.commit()
finally:
if conn is not None:
Expand Down Expand Up @@ -146,8 +144,7 @@ def get_all_face_embeddings():
cursor = conn.cursor()

try:
cursor.execute(
"""
cursor.execute("""
SELECT
f.embeddings,
f.bbox,
Expand All @@ -162,8 +159,7 @@ def get_all_face_embeddings():
JOIN images i ON f.image_id=i.id
LEFT JOIN image_classes ic ON i.id = ic.image_id
LEFT JOIN mappings m ON ic.class_id = m.class_id
"""
)
""")
results = cursor.fetchall()

from app.utils.images import image_util_parse_metadata
Expand Down Expand Up @@ -256,14 +252,12 @@ def db_get_all_faces_with_cluster_names() -> (
cursor = conn.cursor()

try:
cursor.execute(
"""
cursor.execute("""
SELECT f.face_id, f.embeddings, fc.cluster_name
FROM faces f
LEFT JOIN face_clusters fc ON f.cluster_id = fc.cluster_id
ORDER BY f.face_id
"""
)
""")

rows = cursor.fetchall()

Expand Down Expand Up @@ -353,14 +347,12 @@ def db_get_cluster_mean_embeddings() -> List[Dict[str, Union[str, FaceEmbedding]
cursor = conn.cursor()

try:
cursor.execute(
"""
cursor.execute("""
SELECT f.cluster_id, f.embeddings
FROM faces f
WHERE f.cluster_id IS NOT NULL
ORDER BY f.cluster_id
"""
)
""")

rows = cursor.fetchall()

Expand Down
12 changes: 4 additions & 8 deletions backend/app/database/folders.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ def db_create_folders_table() -> None:
try:
conn = sqlite3.connect(DATABASE_PATH)
cursor = conn.cursor()
cursor.execute(
"""
cursor.execute("""
CREATE TABLE IF NOT EXISTS folders (
folder_id TEXT PRIMARY KEY,
parent_folder_id TEXT,
Expand All @@ -28,8 +27,7 @@ def db_create_folders_table() -> None:
taggingCompleted BOOLEAN,
FOREIGN KEY (parent_folder_id) REFERENCES folders(folder_id) ON DELETE CASCADE
)
"""
)
""")
conn.commit()
finally:
if conn is not None:
Expand Down Expand Up @@ -406,13 +404,11 @@ def db_get_all_folder_details() -> (
cursor = conn.cursor()

try:
cursor.execute(
"""
cursor.execute("""
SELECT folder_id, folder_path, parent_folder_id, last_modified_time, AI_Tagging, taggingCompleted
FROM folders
ORDER BY folder_path
"""
)
""")
return cursor.fetchall()
finally:
conn.close()
Expand Down
Loading