Skip to content
Closed
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
c787c61
feat: add accounts maps vault and runtime controls
Abhash-Chakraborty Jul 12, 2026
430035f
feat: ship the timeline-first application experience
Abhash-Chakraborty Jul 12, 2026
fba69cd
build: split modular runtime artifacts
Abhash-Chakraborty Jul 12, 2026
5315afe
ci: validate and publish modular release profiles
Abhash-Chakraborty Jul 12, 2026
16bd8d2
docs: prepare the v1.1 release candidate
Abhash-Chakraborty Jul 12, 2026
853b593
fix: align runtime contracts and privacy guidance
Abhash-Chakraborty Jul 12, 2026
361a002
fix: restore media previews and Florence AI
Abhash-Chakraborty Jul 12, 2026
2836f91
fix: secure the full AI caption pipeline
Abhash-Chakraborty Jul 12, 2026
125ba26
fix: harden runtime and media paths
Abhash-Chakraborty Jul 14, 2026
215ccc0
feat: add recoverable private vault controls
Abhash-Chakraborty Jul 14, 2026
c74fed6
feat: modernize shell settings and search
Abhash-Chakraborty Jul 14, 2026
891af0a
chore: release version 1.1.1
Abhash-Chakraborty Jul 14, 2026
591e9f4
feat: complete timeline and route interactions
Abhash-Chakraborty Jul 14, 2026
fdbf7c8
feat: add modular runtime and trash controls
Abhash-Chakraborty Jul 14, 2026
edd2d01
chore: release version 1.1.2
Abhash-Chakraborty Jul 14, 2026
7dae931
fix: render the offline map reliably
Abhash-Chakraborty Jul 14, 2026
17aab0e
test: align settings smoke assertion
Abhash-Chakraborty Jul 14, 2026
64f4c0e
feat: restore fullscreen previews and persistent uploads
Abhash-Chakraborty Jul 14, 2026
d75ce6b
fix: align ONNX CUDA runtime for v1.1.3
Abhash-Chakraborty Jul 15, 2026
9f41b93
Merge branch 'main' into abhash/production-hardening
Abhash-Chakraborty Jul 15, 2026
a307cbd
fix: regenerate modular dependency lock
Abhash-Chakraborty Jul 15, 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
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ backend/vault_storage
**/*.sqlite3
.env

# Read-only local comparison checkout. It must never enter a build context.
reference-app
@reference-app

# Logs and temporary files
**/*.log
**/*.tmp
25 changes: 18 additions & 7 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# REDIS_PASSWORD, MINIO_ROOT_USER/PASSWORD, and the matching *_URL strings).
# The API refuses to start in production while the default db/object-store
# credentials are still in place. Datastore ports are bound to 127.0.0.1 in
# docker-compose, so the datastores are not reachable from the network.
# Compose, so the datastores are not reachable from the network.
# ──────────────────────────────────────────────────────────────────────────

# Database
Expand Down Expand Up @@ -66,10 +66,20 @@ NEXT_PUBLIC_MAX_BULK_FILES=200
NEXT_PUBLIC_MAX_UPLOAD_SIZE_MB=50

# ML Model Settings
# Normally set by the selected compose file: no-ai | mock | cpu | nvidia.
# It describes packages baked into the image; changing it does not install AI.
FIND_BUILD_PROFILE=nvidia
# disabled | mock | full | remote. The selected artifact must support the mode.
ML_MODE=full
# Remote ML Acceleration
# Disabled by default. Only used when ML_MODE=remote.
# REMOTE_ML_URL must point to a self-hosted Find ML server.
# Instance-wide AI kill switch. The dashboard persists an override in the DB,
# and workers read it at the start of every job.
AI_ENABLED=true
# Opt in to retaining GPS coordinates from EXIF for the private map. Workers
# also read this at each job boundary. False prevents/clears coordinates when
# an image is processed; reprocess existing media to remove previously saved GPS.
MAP_ENABLED=false
Comment thread
Abhash-Chakraborty marked this conversation as resolved.
# Remote ML/BYOK fields are reserved for a future self-hosted adapter. Today,
# ML_MODE=remote is reported as unavailable and never falls back to local AI.
REMOTE_ML_URL=
REMOTE_ML_API_KEY=
REMOTE_ML_STRIP_EXIF=true
Expand All @@ -96,17 +106,18 @@ ML_OFFLINE_ONLY=false
RQ_WORKER_CLASS=rq.worker.worker_classes.SimpleWorker
CLIP_MODEL=ViT-B-16-SigLIP
CLIP_PRETRAINED=webli
BLIP_MODEL=microsoft/Florence-2-base
BLIP_MODEL=Salesforce/blip-image-captioning-base
YOLO_MODEL=yolo26n.pt
USE_GPU=true
YOLO_HALF=true
# Hardware acceleration mode for ML inference: auto | gpu | cpu
# auto = use the best available accelerator, else CPU (default)
# gpu = prefer GPU; automatically fall back to CPU if unavailable
# cpu = force CPU (works on any machine)
# See docs/guides/hardware-acceleration.md. Legacy USE_GPU=false still pins CPU
# when ACCEL_MODE is left at auto.
# See docs/guides/hardware-acceleration.md. A persisted dashboard value wins
# at request/job boundaries. Legacy USE_GPU=false still pins auto mode to CPU.
ACCEL_MODE=auto
# Used only by the default NVIDIA compose.yml profile.
BACKEND_BASE_IMAGE=nvidia/cuda:12.1.1-runtime-ubuntu22.04
BACKEND_PYTHON_VERSION=3.12
EMBEDDING_DIM=768
Expand Down
58 changes: 51 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,41 @@ name: CI
# frontend/** | yes | no | no
# backend/** | no | yes | no
# .github/workflows/** | yes | yes | yes
# docker-compose*.yml | yes | yes | yes
# compose*.yml | yes | yes | yes
# root/shared non-doc config | yes | yes | no
# docs/**, *.md, ISSUE_TEMPLATE | no | no | no

on:
workflow_dispatch:
push:
branches: ["main"]
pull_request:
branches: ["main"]

permissions:
contents: read

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
reference-boundary:
name: Reference source boundary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false

- name: Reject tracked reference source
shell: bash
run: |
if [[ -n "$(git ls-files -- 'reference-app/**' '@reference-app/**')" ]]; then
echo "Reference application source must stay local and untracked." >&2
exit 1
fi

detect-changes:
runs-on: ubuntu-latest
outputs:
Expand All @@ -40,7 +64,7 @@ jobs:
- 'backend/**'
shared:
- '.github/workflows/**'
- 'docker-compose*.yml'
- 'compose*.yml'

- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d
id: uncategorized
Expand All @@ -52,7 +76,7 @@ jobs:
- '!frontend/**'
- '!backend/**'
- '!.github/workflows/**'
- '!docker-compose*.yml'
- '!compose*.yml'
- '!docs/**'
- '!**/*.md'
- '!LICENSE'
Expand Down Expand Up @@ -193,13 +217,33 @@ jobs:
needs: detect-changes
if: needs.detect-changes.outputs.shared == 'true'
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
file:
- compose.yml
- compose.base.yml
- compose.no-ai.yml
- compose.mock.yml
- compose.cpu.yml
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false

- name: Validate docker-compose.yml
run: docker compose config --quiet
- name: Validate ${{ matrix.file }}
run: docker compose --env-file .env.example -f "${{ matrix.file }}" config --quiet

- name: Validate docker-compose.light.yml
run: docker compose -f docker-compose.light.yml config --quiet
dependency-review:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false
- uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294
with:
fail-on-severity: high
128 changes: 0 additions & 128 deletions .github/workflows/manual-ghcr-publish.yml

This file was deleted.

Loading
Loading